From 88faca86291f937e2699600307fc48c3a3bf5dc6 Mon Sep 17 00:00:00 2001 From: zide05 <845465009@qq.com> Date: Thu, 17 Dec 2020 15:10:11 +0800 Subject: [PATCH 1/4] dataloader update --- .../model => fastSum/Baseline}/__init__.py | 0 .../Baseline}/config/deeplstm.config | 0 .../Baseline}/config/seqlab.config | 0 .../Baseline}/config/transformer.config | 0 .../Baseline}/model/DeepLSTM.py | 0 .../Baseline}/model/Encoder.py | 0 .../Baseline}/model/LSTMModel.py | 0 {Baseline => fastSum/Baseline}/model/Loss.py | 0 .../Baseline}/model/Metric.py | 0 .../Baseline}/model/TForiginal.py | 0 .../Baseline}/model/TransformerModel.py | 0 .../Baseline/model}/__init__.py | 0 fastSum/Baseline/test/__init__.py | 0 .../Baseline}/test/test_dataloader.py | 0 .../Baseline}/test/testdata/test.jsonl | 0 .../Baseline}/test/testdata/train.jsonl | 0 .../Baseline}/test/testdata/val.jsonl | 0 .../Baseline}/test/testdata/vocab | 0 {Baseline => fastSum/Baseline}/test_data.py | 0 .../Baseline}/tools/Callback.py | 0 .../Baseline}/tools/PositionEmbedding.py | 0 .../Baseline}/tools/__init__.py | 0 {Baseline => fastSum/Baseline}/tools/data.py | 0 .../Baseline}/tools/logger.py | 0 {Baseline => fastSum/Baseline}/tools/utils.py | 0 {Baseline => fastSum/Baseline}/train.py | 0 .../Baseline}/train_origin.py | 0 .../Baseline}/train_transformer.py | 0 .../Baseline}/transformer/Beam.py | 0 .../Baseline}/transformer/Constants.py | 0 .../Baseline}/transformer/Layers.py | 0 .../Baseline}/transformer/Models.py | 0 .../Baseline}/transformer/Modules.py | 0 .../Baseline}/transformer/Optim.py | 0 .../Baseline}/transformer/SubLayers.py | 0 .../Baseline}/transformer/Translator.py | 0 .../Baseline}/transformer/__init__.py | 0 fastSum/BertSum/callback.py | 129 + fastSum/BertSum/dataloader.py | 157 + fastSum/BertSum/metrics.py | 178 + fastSum/BertSum/model.py | 51 + fastSum/BertSum/train_BertSum.py | 147 + fastSum/BertSum/utils.py | 24 + fastSum/Dataloader/summarizationLoader.py | 462 + fastSum/MatchSum/README.md | 83 + fastSum/MatchSum/callback.py | 32 + fastSum/MatchSum/dataloader.py | 92 + fastSum/MatchSum/metrics.py | 209 + fastSum/MatchSum/model.py | 57 + fastSum/MatchSum/preprocess/get_candidate.py | 223 + fastSum/MatchSum/preprocess/test_cnndm.jsonl | 11489 ++++++++++++++++ fastSum/MatchSum/train_matching.py | 153 + fastSum/MatchSum/utils.py | 32 + fastSum/PointerGen/README.md | 4 + .../__pycache__/config.cpython-37.pyc | Bin 0 -> 1617 bytes .../data_util/__pycache__/data.cpython-37.pyc | Bin 0 -> 6437 bytes .../__pycache__/logging.cpython-37.pyc | Bin 0 -> 481 bytes .../__pycache__/utils.cpython-37.pyc | Bin 0 -> 4925 bytes fastSum/PointerGen/data_util/config.py | 46 + fastSum/PointerGen/data_util/data.py | 381 + fastSum/PointerGen/data_util/logging.py | 14 + fastSum/PointerGen/data_util/utils.py | 206 + fastSum/PointerGen/decode.py | 184 + .../model/__pycache__/loss.cpython-37.pyc | Bin 0 -> 1806 bytes .../model/__pycache__/metric.cpython-37.pyc | Bin 0 -> 3976 bytes .../model/__pycache__/model.cpython-37.pyc | Bin 0 -> 13883 bytes fastSum/PointerGen/model/loss.py | 62 + fastSum/PointerGen/model/metric.py | 155 + fastSum/PointerGen/model/model.bak.py | 546 + fastSum/PointerGen/model/model.py | 558 + fastSum/PointerGen/model/mq | 0 fastSum/PointerGen/train.py | 170 + .../__pycache__/callback.cpython-37.pyc | Bin 0 -> 4375 bytes .../PointerGen/training_ptr_gen/callback.py | 165 + fastSum/PointerGen/training_ptr_gen/main.py | 126 + fastSum/__init__.py | 0 76 files changed, 16135 insertions(+) rename {Baseline/model => fastSum/Baseline}/__init__.py (100%) rename {Baseline => fastSum/Baseline}/config/deeplstm.config (100%) rename {Baseline => fastSum/Baseline}/config/seqlab.config (100%) rename {Baseline => fastSum/Baseline}/config/transformer.config (100%) rename {Baseline => fastSum/Baseline}/model/DeepLSTM.py (100%) rename {Baseline => fastSum/Baseline}/model/Encoder.py (100%) rename {Baseline => fastSum/Baseline}/model/LSTMModel.py (100%) rename {Baseline => fastSum/Baseline}/model/Loss.py (100%) rename {Baseline => fastSum/Baseline}/model/Metric.py (100%) rename {Baseline => fastSum/Baseline}/model/TForiginal.py (100%) rename {Baseline => fastSum/Baseline}/model/TransformerModel.py (100%) rename {Baseline/test => fastSum/Baseline/model}/__init__.py (100%) create mode 100644 fastSum/Baseline/test/__init__.py rename {Baseline => fastSum/Baseline}/test/test_dataloader.py (100%) rename {Baseline => fastSum/Baseline}/test/testdata/test.jsonl (100%) rename {Baseline => fastSum/Baseline}/test/testdata/train.jsonl (100%) rename {Baseline => fastSum/Baseline}/test/testdata/val.jsonl (100%) rename {Baseline => fastSum/Baseline}/test/testdata/vocab (100%) rename {Baseline => fastSum/Baseline}/test_data.py (100%) rename {Baseline => fastSum/Baseline}/tools/Callback.py (100%) rename {Baseline => fastSum/Baseline}/tools/PositionEmbedding.py (100%) rename {Baseline => fastSum/Baseline}/tools/__init__.py (100%) rename {Baseline => fastSum/Baseline}/tools/data.py (100%) rename {Baseline => fastSum/Baseline}/tools/logger.py (100%) rename {Baseline => fastSum/Baseline}/tools/utils.py (100%) rename {Baseline => fastSum/Baseline}/train.py (100%) rename {Baseline => fastSum/Baseline}/train_origin.py (100%) rename {Baseline => fastSum/Baseline}/train_transformer.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Beam.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Constants.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Layers.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Models.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Modules.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Optim.py (100%) rename {Baseline => fastSum/Baseline}/transformer/SubLayers.py (100%) rename {Baseline => fastSum/Baseline}/transformer/Translator.py (100%) rename {Baseline => fastSum/Baseline}/transformer/__init__.py (100%) create mode 100644 fastSum/BertSum/callback.py create mode 100644 fastSum/BertSum/dataloader.py create mode 100644 fastSum/BertSum/metrics.py create mode 100644 fastSum/BertSum/model.py create mode 100644 fastSum/BertSum/train_BertSum.py create mode 100644 fastSum/BertSum/utils.py create mode 100644 fastSum/Dataloader/summarizationLoader.py create mode 100644 fastSum/MatchSum/README.md create mode 100644 fastSum/MatchSum/callback.py create mode 100644 fastSum/MatchSum/dataloader.py create mode 100644 fastSum/MatchSum/metrics.py create mode 100644 fastSum/MatchSum/model.py create mode 100644 fastSum/MatchSum/preprocess/get_candidate.py create mode 100644 fastSum/MatchSum/preprocess/test_cnndm.jsonl create mode 100644 fastSum/MatchSum/train_matching.py create mode 100644 fastSum/MatchSum/utils.py create mode 100644 fastSum/PointerGen/README.md create mode 100644 fastSum/PointerGen/data_util/__pycache__/config.cpython-37.pyc create mode 100644 fastSum/PointerGen/data_util/__pycache__/data.cpython-37.pyc create mode 100644 fastSum/PointerGen/data_util/__pycache__/logging.cpython-37.pyc create mode 100644 fastSum/PointerGen/data_util/__pycache__/utils.cpython-37.pyc create mode 100644 fastSum/PointerGen/data_util/config.py create mode 100644 fastSum/PointerGen/data_util/data.py create mode 100644 fastSum/PointerGen/data_util/logging.py create mode 100644 fastSum/PointerGen/data_util/utils.py create mode 100644 fastSum/PointerGen/decode.py create mode 100644 fastSum/PointerGen/model/__pycache__/loss.cpython-37.pyc create mode 100644 fastSum/PointerGen/model/__pycache__/metric.cpython-37.pyc create mode 100644 fastSum/PointerGen/model/__pycache__/model.cpython-37.pyc create mode 100644 fastSum/PointerGen/model/loss.py create mode 100644 fastSum/PointerGen/model/metric.py create mode 100644 fastSum/PointerGen/model/model.bak.py create mode 100644 fastSum/PointerGen/model/model.py create mode 100644 fastSum/PointerGen/model/mq create mode 100644 fastSum/PointerGen/train.py create mode 100644 fastSum/PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc create mode 100644 fastSum/PointerGen/training_ptr_gen/callback.py create mode 100644 fastSum/PointerGen/training_ptr_gen/main.py create mode 100644 fastSum/__init__.py diff --git a/Baseline/model/__init__.py b/fastSum/Baseline/__init__.py similarity index 100% rename from Baseline/model/__init__.py rename to fastSum/Baseline/__init__.py diff --git a/Baseline/config/deeplstm.config b/fastSum/Baseline/config/deeplstm.config similarity index 100% rename from Baseline/config/deeplstm.config rename to fastSum/Baseline/config/deeplstm.config diff --git a/Baseline/config/seqlab.config b/fastSum/Baseline/config/seqlab.config similarity index 100% rename from Baseline/config/seqlab.config rename to fastSum/Baseline/config/seqlab.config diff --git a/Baseline/config/transformer.config b/fastSum/Baseline/config/transformer.config similarity index 100% rename from Baseline/config/transformer.config rename to fastSum/Baseline/config/transformer.config diff --git a/Baseline/model/DeepLSTM.py b/fastSum/Baseline/model/DeepLSTM.py similarity index 100% rename from Baseline/model/DeepLSTM.py rename to fastSum/Baseline/model/DeepLSTM.py diff --git a/Baseline/model/Encoder.py b/fastSum/Baseline/model/Encoder.py similarity index 100% rename from Baseline/model/Encoder.py rename to fastSum/Baseline/model/Encoder.py diff --git a/Baseline/model/LSTMModel.py b/fastSum/Baseline/model/LSTMModel.py similarity index 100% rename from Baseline/model/LSTMModel.py rename to fastSum/Baseline/model/LSTMModel.py diff --git a/Baseline/model/Loss.py b/fastSum/Baseline/model/Loss.py similarity index 100% rename from Baseline/model/Loss.py rename to fastSum/Baseline/model/Loss.py diff --git a/Baseline/model/Metric.py b/fastSum/Baseline/model/Metric.py similarity index 100% rename from Baseline/model/Metric.py rename to fastSum/Baseline/model/Metric.py diff --git a/Baseline/model/TForiginal.py b/fastSum/Baseline/model/TForiginal.py similarity index 100% rename from Baseline/model/TForiginal.py rename to fastSum/Baseline/model/TForiginal.py diff --git a/Baseline/model/TransformerModel.py b/fastSum/Baseline/model/TransformerModel.py similarity index 100% rename from Baseline/model/TransformerModel.py rename to fastSum/Baseline/model/TransformerModel.py diff --git a/Baseline/test/__init__.py b/fastSum/Baseline/model/__init__.py similarity index 100% rename from Baseline/test/__init__.py rename to fastSum/Baseline/model/__init__.py diff --git a/fastSum/Baseline/test/__init__.py b/fastSum/Baseline/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Baseline/test/test_dataloader.py b/fastSum/Baseline/test/test_dataloader.py similarity index 100% rename from Baseline/test/test_dataloader.py rename to fastSum/Baseline/test/test_dataloader.py diff --git a/Baseline/test/testdata/test.jsonl b/fastSum/Baseline/test/testdata/test.jsonl similarity index 100% rename from Baseline/test/testdata/test.jsonl rename to fastSum/Baseline/test/testdata/test.jsonl diff --git a/Baseline/test/testdata/train.jsonl b/fastSum/Baseline/test/testdata/train.jsonl similarity index 100% rename from Baseline/test/testdata/train.jsonl rename to fastSum/Baseline/test/testdata/train.jsonl diff --git a/Baseline/test/testdata/val.jsonl b/fastSum/Baseline/test/testdata/val.jsonl similarity index 100% rename from Baseline/test/testdata/val.jsonl rename to fastSum/Baseline/test/testdata/val.jsonl diff --git a/Baseline/test/testdata/vocab b/fastSum/Baseline/test/testdata/vocab similarity index 100% rename from Baseline/test/testdata/vocab rename to fastSum/Baseline/test/testdata/vocab diff --git a/Baseline/test_data.py b/fastSum/Baseline/test_data.py similarity index 100% rename from Baseline/test_data.py rename to fastSum/Baseline/test_data.py diff --git a/Baseline/tools/Callback.py b/fastSum/Baseline/tools/Callback.py similarity index 100% rename from Baseline/tools/Callback.py rename to fastSum/Baseline/tools/Callback.py diff --git a/Baseline/tools/PositionEmbedding.py b/fastSum/Baseline/tools/PositionEmbedding.py similarity index 100% rename from Baseline/tools/PositionEmbedding.py rename to fastSum/Baseline/tools/PositionEmbedding.py diff --git a/Baseline/tools/__init__.py b/fastSum/Baseline/tools/__init__.py similarity index 100% rename from Baseline/tools/__init__.py rename to fastSum/Baseline/tools/__init__.py diff --git a/Baseline/tools/data.py b/fastSum/Baseline/tools/data.py similarity index 100% rename from Baseline/tools/data.py rename to fastSum/Baseline/tools/data.py diff --git a/Baseline/tools/logger.py b/fastSum/Baseline/tools/logger.py similarity index 100% rename from Baseline/tools/logger.py rename to fastSum/Baseline/tools/logger.py diff --git a/Baseline/tools/utils.py b/fastSum/Baseline/tools/utils.py similarity index 100% rename from Baseline/tools/utils.py rename to fastSum/Baseline/tools/utils.py diff --git a/Baseline/train.py b/fastSum/Baseline/train.py similarity index 100% rename from Baseline/train.py rename to fastSum/Baseline/train.py diff --git a/Baseline/train_origin.py b/fastSum/Baseline/train_origin.py similarity index 100% rename from Baseline/train_origin.py rename to fastSum/Baseline/train_origin.py diff --git a/Baseline/train_transformer.py b/fastSum/Baseline/train_transformer.py similarity index 100% rename from Baseline/train_transformer.py rename to fastSum/Baseline/train_transformer.py diff --git a/Baseline/transformer/Beam.py b/fastSum/Baseline/transformer/Beam.py similarity index 100% rename from Baseline/transformer/Beam.py rename to fastSum/Baseline/transformer/Beam.py diff --git a/Baseline/transformer/Constants.py b/fastSum/Baseline/transformer/Constants.py similarity index 100% rename from Baseline/transformer/Constants.py rename to fastSum/Baseline/transformer/Constants.py diff --git a/Baseline/transformer/Layers.py b/fastSum/Baseline/transformer/Layers.py similarity index 100% rename from Baseline/transformer/Layers.py rename to fastSum/Baseline/transformer/Layers.py diff --git a/Baseline/transformer/Models.py b/fastSum/Baseline/transformer/Models.py similarity index 100% rename from Baseline/transformer/Models.py rename to fastSum/Baseline/transformer/Models.py diff --git a/Baseline/transformer/Modules.py b/fastSum/Baseline/transformer/Modules.py similarity index 100% rename from Baseline/transformer/Modules.py rename to fastSum/Baseline/transformer/Modules.py diff --git a/Baseline/transformer/Optim.py b/fastSum/Baseline/transformer/Optim.py similarity index 100% rename from Baseline/transformer/Optim.py rename to fastSum/Baseline/transformer/Optim.py diff --git a/Baseline/transformer/SubLayers.py b/fastSum/Baseline/transformer/SubLayers.py similarity index 100% rename from Baseline/transformer/SubLayers.py rename to fastSum/Baseline/transformer/SubLayers.py diff --git a/Baseline/transformer/Translator.py b/fastSum/Baseline/transformer/Translator.py similarity index 100% rename from Baseline/transformer/Translator.py rename to fastSum/Baseline/transformer/Translator.py diff --git a/Baseline/transformer/__init__.py b/fastSum/Baseline/transformer/__init__.py similarity index 100% rename from Baseline/transformer/__init__.py rename to fastSum/Baseline/transformer/__init__.py diff --git a/fastSum/BertSum/callback.py b/fastSum/BertSum/callback.py new file mode 100644 index 0000000..a1bb4f5 --- /dev/null +++ b/fastSum/BertSum/callback.py @@ -0,0 +1,129 @@ +import os +import torch +import sys +from torch import nn + +from fastNLP.core.callback import Callback +from fastNLP.core.utils import _get_model_device + +class MyCallback(Callback): + def __init__(self, args): + super(MyCallback, self).__init__() + self.args = args + self.real_step = 0 + + def on_step_end(self): + if self.step % self.update_every == 0 and self.step > 0: + self.real_step += 1 + cur_lr = self.args.max_lr * 100 * min(self.real_step ** (-0.5), self.real_step * self.args.warmup_steps**(-1.5)) + for param_group in self.optimizer.param_groups: + param_group['lr'] = cur_lr + + if self.real_step % 1000 == 0: + self.pbar.write('Current learning rate is {:.8f}, real_step: {}'.format(cur_lr, self.real_step)) + + def on_epoch_end(self): + self.pbar.write('Epoch {} is done !!!'.format(self.epoch)) + +def _save_model(model, model_name, save_dir, only_param=False): + """ 存储不含有显卡信息的 state_dict 或 model + :param model: + :param model_name: + :param save_dir: 保存的 directory + :param only_param: + :return: + """ + model_path = os.path.join(save_dir, model_name) + if not os.path.isdir(save_dir): + os.makedirs(save_dir, exist_ok=True) + if isinstance(model, nn.DataParallel): + model = model.module + if only_param: + state_dict = model.state_dict() + for key in state_dict: + state_dict[key] = state_dict[key].cpu() + torch.save(state_dict, model_path) + else: + _model_device = _get_model_device(model) + model.cpu() + torch.save(model, model_path) + model.to(_model_device) + +class SaveModelCallback(Callback): + """ + 由于Trainer在训练过程中只会保存最佳的模型, 该 callback 可实现多种方式的结果存储。 + 会根据训练开始的时间戳在 save_dir 下建立文件夹,在再文件夹下存放多个模型 + -save_dir + -2019-07-03-15-06-36 + -epoch0step20{metric_key}{evaluate_performance}.pt # metric是给定的metric_key, evaluate_perfomance是性能 + -epoch1step40 + -2019-07-03-15-10-00 + -epoch:0step:20{metric_key}:{evaluate_performance}.pt # metric是给定的metric_key, evaluate_perfomance是性能 + :param str save_dir: 将模型存放在哪个目录下,会在该目录下创建以时间戳命名的目录,并存放模型 + :param int top: 保存dev表现top多少模型。-1为保存所有模型 + :param bool only_param: 是否只保存模型权重 + :param save_on_exception: 发生exception时,是否保存一份当时的模型 + """ + def __init__(self, save_dir, top=5, only_param=False, save_on_exception=False): + super().__init__() + + if not os.path.isdir(save_dir): + raise IsADirectoryError("{} is not a directory.".format(save_dir)) + self.save_dir = save_dir + if top < 0: + self.top = sys.maxsize + else: + self.top = top + self._ordered_save_models = [] # List[Tuple], Tuple[0]是metric, Tuple[1]是path。metric是依次变好的,所以从头删 + + self.only_param = only_param + self.save_on_exception = save_on_exception + + def on_train_begin(self): + self.save_dir = os.path.join(self.save_dir, self.trainer.start_time) + + def on_valid_end(self, eval_result, metric_key, optimizer, is_better_eval): + metric_value = list(eval_result.values())[0][metric_key] + self._save_this_model(metric_value) + + def _insert_into_ordered_save_models(self, pair): + # pair:(metric_value, model_name) + # 返回save的模型pair与删除的模型pair. pair中第一个元素是metric的值,第二个元素是模型的名称 + index = -1 + for _pair in self._ordered_save_models: + if _pair[0]>=pair[0] and self.trainer.increase_better: + break + if not self.trainer.increase_better and _pair[0]<=pair[0]: + break + index += 1 + save_pair = None + if len(self._ordered_save_models)=self.top and index!=-1): + save_pair = pair + self._ordered_save_models.insert(index+1, pair) + delete_pair = None + if len(self._ordered_save_models)>self.top: + delete_pair = self._ordered_save_models.pop(0) + return save_pair, delete_pair + + def _save_this_model(self, metric_value): + name = "epoch:{}_step:{}_{}:{:.6f}.pt".format(self.epoch, self.step, self.trainer.metric_key, metric_value) + save_pair, delete_pair = self._insert_into_ordered_save_models((metric_value, name)) + if save_pair: + try: + _save_model(self.model, model_name=name, save_dir=self.save_dir, only_param=self.only_param) + except Exception as e: + print(f"The following exception:{e} happens when saves model to {self.save_dir}.") + if delete_pair: + try: + delete_model_path = os.path.join(self.save_dir, delete_pair[1]) + if os.path.exists(delete_model_path): + os.remove(delete_model_path) + except Exception as e: + print(f"Fail to delete model {name} at {self.save_dir} caused by exception:{e}.") + + def on_exception(self, exception): + if self.save_on_exception: + name = "epoch:{}_step:{}_Exception:{}.pt".format(self.epoch, self.step, exception.__class__.__name__) + _save_model(self.model, model_name=name, save_dir=self.save_dir, only_param=self.only_param) + + diff --git a/fastSum/BertSum/dataloader.py b/fastSum/BertSum/dataloader.py new file mode 100644 index 0000000..6af797e --- /dev/null +++ b/fastSum/BertSum/dataloader.py @@ -0,0 +1,157 @@ +from time import time +from datetime import timedelta + +from fastNLP.io.dataset_loader import JsonLoader +from fastNLP.modules.encoder._bert import BertTokenizer +from fastNLP.io.data_bundle import DataBundle +from fastNLP.core.const import Const + +class BertData(JsonLoader): + + def __init__(self, max_nsents=60, max_ntokens=100, max_len=512): + + fields = {'article': 'article', + 'label': 'label'} + super(BertData, self).__init__(fields=fields) + + self.max_nsents = max_nsents + self.max_ntokens = max_ntokens + self.max_len = max_len + + self.tokenizer = BertTokenizer.from_pretrained('/path/to/uncased_L-12_H-768_A-12') + self.cls_id = self.tokenizer.vocab['[CLS]'] + self.sep_id = self.tokenizer.vocab['[SEP]'] + self.pad_id = self.tokenizer.vocab['[PAD]'] + + def _load(self, paths): + dataset = super(BertData, self)._load(paths) + return dataset + + def process(self, paths): + + def truncate_articles(instance, max_nsents=self.max_nsents, max_ntokens=self.max_ntokens): + article = [' '.join(sent.lower().split()[:max_ntokens]) for sent in instance['article']] + return article[:max_nsents] + + def truncate_labels(instance): + label = list(filter(lambda x: x < len(instance['article']), instance['label'])) + return label + + def bert_tokenize(instance, tokenizer, max_len, pad_value): + article = instance['article'] + article = ' [SEP] [CLS] '.join(article) + word_pieces = tokenizer.tokenize(article)[:(max_len - 2)] + word_pieces = ['[CLS]'] + word_pieces + ['[SEP]'] + token_ids = tokenizer.convert_tokens_to_ids(word_pieces) + while len(token_ids) < max_len: + token_ids.append(pad_value) + assert len(token_ids) == max_len + return token_ids + + def get_seg_id(instance, max_len, sep_id): + _segs = [-1] + [i for i, idx in enumerate(instance['article']) if idx == sep_id] + segs = [_segs[i] - _segs[i - 1] for i in range(1, len(_segs))] + segment_id = [] + for i, length in enumerate(segs): + if i % 2 == 0: + segment_id += length * [0] + else: + segment_id += length * [1] + while len(segment_id) < max_len: + segment_id.append(0) + return segment_id + + def get_cls_id(instance, cls_id): + classification_id = [i for i, idx in enumerate(instance['article']) if idx == cls_id] + return classification_id + + def get_labels(instance): + labels = [0] * len(instance['cls_id']) + label_idx = list(filter(lambda x: x < len(instance['cls_id']), instance['label'])) + for idx in label_idx: + labels[idx] = 1 + return labels + + datasets = {} + for name in paths: + datasets[name] = self._load(paths[name]) + + # remove empty samples + datasets[name].drop(lambda ins: len(ins['article']) == 0 or len(ins['label']) == 0) + + # truncate articles + datasets[name].apply(lambda ins: truncate_articles(ins, self.max_nsents, self.max_ntokens), new_field_name='article') + + # truncate labels + datasets[name].apply(truncate_labels, new_field_name='label') + + # tokenize and convert tokens to id + datasets[name].apply(lambda ins: bert_tokenize(ins, self.tokenizer, self.max_len, self.pad_id), new_field_name='article') + + # get segment id + datasets[name].apply(lambda ins: get_seg_id(ins, self.max_len, self.sep_id), new_field_name='segment_id') + + # get classification id + datasets[name].apply(lambda ins: get_cls_id(ins, self.cls_id), new_field_name='cls_id') + + # get label + datasets[name].apply(get_labels, new_field_name='label') + + # rename filed + datasets[name].rename_field('article', Const.INPUTS(0)) + datasets[name].rename_field('segment_id', Const.INPUTS(1)) + datasets[name].rename_field('cls_id', Const.INPUTS(2)) + datasets[name].rename_field('lbael', Const.TARGET) + + # set input and target + datasets[name].set_input(Const.INPUTS(0), Const.INPUTS(1), Const.INPUTS(2)) + datasets[name].set_target(Const.TARGET) + + # set paddding value + datasets[name].set_pad_val('article', 0) + + return DataBundle(datasets=datasets) + + +class BertSumLoader(JsonLoader): + + def __init__(self): + fields = {'article': 'article', + 'segment_id': 'segment_id', + 'cls_id': 'cls_id', + 'label': Const.TARGET + } + super(BertSumLoader, self).__init__(fields=fields) + + def _load(self, paths): + dataset = super(BertSumLoader, self)._load(paths) + return dataset + + def process(self, paths): + + def get_seq_len(instance): + return len(instance['article']) + + print('Start loading datasets !!!') + start = time() + + # load datasets + datasets = {} + for name in paths: + datasets[name] = self._load(paths[name]) + + datasets[name].apply(get_seq_len, new_field_name='seq_len') + + # set input and target + datasets[name].set_input('article', 'segment_id', 'cls_id') + datasets[name].set_target(Const.TARGET) + + # set padding value + datasets[name].set_pad_val('article', 0) + datasets[name].set_pad_val('segment_id', 0) + datasets[name].set_pad_val('cls_id', -1) + datasets[name].set_pad_val(Const.TARGET, 0) + + print('Finished in {}'.format(timedelta(seconds=time()-start))) + + return DataBundle(datasets=datasets) diff --git a/fastSum/BertSum/metrics.py b/fastSum/BertSum/metrics.py new file mode 100644 index 0000000..228f678 --- /dev/null +++ b/fastSum/BertSum/metrics.py @@ -0,0 +1,178 @@ +import numpy as np +import json +from os.path import join +import torch +import logging +import tempfile +import subprocess as sp +from datetime import timedelta +from time import time + +from pyrouge import Rouge155 +from pyrouge.utils import log + +from fastNLP.core.losses import LossBase +from fastNLP.core.metrics import MetricBase + +_ROUGE_PATH = '/path/to/RELEASE-1.5.5' + +class MyBCELoss(LossBase): + + def __init__(self, pred=None, target=None, mask=None): + super(MyBCELoss, self).__init__() + self._init_param_map(pred=pred, target=target, mask=mask) + self.loss_func = torch.nn.BCELoss(reduction='none') + + def get_loss(self, pred, target, mask): + loss = self.loss_func(pred, target.float()) + loss = (loss * mask.float()).sum() + return loss + +class LossMetric(MetricBase): + def __init__(self, pred=None, target=None, mask=None): + super(LossMetric, self).__init__() + self._init_param_map(pred=pred, target=target, mask=mask) + self.loss_func = torch.nn.BCELoss(reduction='none') + self.avg_loss = 0.0 + self.nsamples = 0 + + def evaluate(self, pred, target, mask): + batch_size = pred.size(0) + loss = self.loss_func(pred, target.float()) + loss = (loss * mask.float()).sum() + self.avg_loss += loss + self.nsamples += batch_size + + def get_metric(self, reset=True): + self.avg_loss = self.avg_loss / self.nsamples + eval_result = {'loss': self.avg_loss} + if reset: + self.avg_loss = 0 + self.nsamples = 0 + return eval_result + +class RougeMetric(MetricBase): + def __init__(self, data_path, dec_path, ref_path, n_total, n_ext=3, ngram_block=3, pred=None, target=None, mask=None): + super(RougeMetric, self).__init__() + self._init_param_map(pred=pred, target=target, mask=mask) + self.data_path = data_path + self.dec_path = dec_path + self.ref_path = ref_path + self.n_total = n_total + self.n_ext = n_ext + self.ngram_block = ngram_block + + self.cur_idx = 0 + self.ext = [] + self.start = time() + + @staticmethod + def eval_rouge(dec_dir, ref_dir): + assert _ROUGE_PATH is not None + log.get_global_console_logger().setLevel(logging.WARNING) + dec_pattern = '(\d+).dec' + ref_pattern = '#ID#.ref' + cmd = '-c 95 -r 1000 -n 2 -m' + with tempfile.TemporaryDirectory() as tmp_dir: + Rouge155.convert_summaries_to_rouge_format( + dec_dir, join(tmp_dir, 'dec')) + Rouge155.convert_summaries_to_rouge_format( + ref_dir, join(tmp_dir, 'ref')) + Rouge155.write_config_static( + join(tmp_dir, 'dec'), dec_pattern, + join(tmp_dir, 'ref'), ref_pattern, + join(tmp_dir, 'settings.xml'), system_id=1 + ) + cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') + + ' -e {} '.format(join(_ROUGE_PATH, 'data')) + + cmd + + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) + output = sp.check_output(cmd.split(' '), universal_newlines=True) + R_1 = float(output.split('\n')[3].split(' ')[3]) + R_2 = float(output.split('\n')[7].split(' ')[3]) + R_L = float(output.split('\n')[11].split(' ')[3]) + print(output) + return R_1, R_2, R_L + + def evaluate(self, pred, target, mask): + pred = pred + mask.float() + pred = pred.cpu().data.numpy() + ext_ids = np.argsort(-pred, 1) + for sent_id in ext_ids: + self.ext.append(sent_id) + self.cur_idx += 1 + print('{}/{} ({:.2f}%) decoded in {} seconds\r'.format( + self.cur_idx, self.n_total, self.cur_idx/self.n_total*100, timedelta(seconds=int(time()-self.start)) + ), end='') + + def get_metric(self, use_ngram_block=True, reset=True): + + def check_n_gram(sentence, n, dic): + tokens = sentence.split(' ') + s_len = len(tokens) + for i in range(s_len): + if i + n > s_len: + break + if ' '.join(tokens[i: i + n]) in dic: + return False + return True # no n_gram overlap + + # load original data + data = [] + with open(self.data_path) as f: + for line in f: + cur_data = json.loads(line) + if 'text' in cur_data: + new_data = {} + new_data['article'] = cur_data['text'] + new_data['abstract'] = cur_data['summary'] + data.append(new_data) + else: + data.append(cur_data) + + # write decode sentences and references + if use_ngram_block == True: + print('\nStart {}-gram blocking !!!'.format(self.ngram_block)) + for i, ext_ids in enumerate(self.ext): + dec, ref = [], [] + if use_ngram_block == False: + n_sent = min(len(data[i]['article']), self.n_ext) + for j in range(n_sent): + idx = ext_ids[j] + dec.append(data[i]['article'][idx]) + else: + n_sent = len(ext_ids) + dic = {} + for j in range(n_sent): + sent = data[i]['article'][ext_ids[j]] + if check_n_gram(sent, self.ngram_block, dic) == True: + dec.append(sent) + # update dic + tokens = sent.split(' ') + s_len = len(tokens) + for k in range(s_len): + if k + self.ngram_block > s_len: + break + dic[' '.join(tokens[k: k + self.ngram_block])] = 1 + if len(dec) >= self.n_ext: + break + + for sent in data[i]['abstract']: + ref.append(sent) + + with open(join(self.dec_path, '{}.dec'.format(i)), 'w') as f: + for sent in dec: + print(sent, file=f) + with open(join(self.ref_path, '{}.ref'.format(i)), 'w') as f: + for sent in ref: + print(sent, file=f) + + print('\nStart evaluating ROUGE score !!!') + R_1, R_2, R_L = RougeMetric.eval_rouge(self.dec_path, self.ref_path) + eval_result = {'ROUGE-1': R_1, 'ROUGE-2': R_2, 'ROUGE-L':R_L} + + if reset == True: + self.cur_idx = 0 + self.ext = [] + self.start = time() + return eval_result diff --git a/fastSum/BertSum/model.py b/fastSum/BertSum/model.py new file mode 100644 index 0000000..34a0549 --- /dev/null +++ b/fastSum/BertSum/model.py @@ -0,0 +1,51 @@ +import torch +from torch import nn +from torch.nn import init + +from fastNLP.modules.encoder.bert import BertModel + + +class Classifier(nn.Module): + def __init__(self, hidden_size): + super(Classifier, self).__init__() + self.linear = nn.Linear(hidden_size, 1) + self.sigmoid = nn.Sigmoid() + + def forward(self, inputs, mask_cls): + h = self.linear(inputs).squeeze(-1) # [batch_size, seq_len] + sent_scores = self.sigmoid(h) * mask_cls.float() + return sent_scores + + +class BertSum(nn.Module): + + def __init__(self, hidden_size=768): + super(BertSum, self).__init__() + + self.hidden_size = hidden_size + + self.encoder = BertModel.from_pretrained('/path/to/uncased_L-12_H-768_A-12') + self.decoder = Classifier(self.hidden_size) + + def forward(self, article, segment_id, cls_id): + + # print(article.device) + # print(segment_id.device) + # print(cls_id.device) + + input_mask = 1 - (article == 0).long() + mask_cls = 1 - (cls_id == -1).long() + assert input_mask.size() == article.size() + assert mask_cls.size() == cls_id.size() + + bert_out = self.encoder(article, token_type_ids=segment_id, attention_mask=input_mask) + bert_out = bert_out[0][-1] # last layer + + sent_emb = bert_out[torch.arange(bert_out.size(0)).unsqueeze(1), cls_id] + sent_emb = sent_emb * mask_cls.unsqueeze(-1).float() + assert sent_emb.size() == (article.size(0), cls_id.size(1), self.hidden_size) # [batch_size, seq_len, hidden_size] + + sent_scores = self.decoder(sent_emb, mask_cls) # [batch_size, seq_len] + assert sent_scores.size() == (article.size(0), cls_id.size(1)) + + return {'pred': sent_scores, 'mask': mask_cls} diff --git a/fastSum/BertSum/train_BertSum.py b/fastSum/BertSum/train_BertSum.py new file mode 100644 index 0000000..d34fa0b --- /dev/null +++ b/fastSum/BertSum/train_BertSum.py @@ -0,0 +1,147 @@ +import sys +import argparse +import os +import json +import torch +from time import time +from datetime import timedelta +from os.path import join, exists +from torch.optim import Adam + +from utils import get_data_path, get_rouge_path + +from dataloader import BertSumLoader +from model import BertSum +from fastNLP.core.optimizer import AdamW +from metrics import MyBCELoss, LossMetric, RougeMetric +from fastNLP.core.sampler import BucketSampler +from callback import MyCallback, SaveModelCallback +from fastNLP.core.trainer import Trainer +from fastNLP.core.tester import Tester + + +def configure_training(args): + devices = [int(gpu) for gpu in args.gpus.split(',')] + params = {} + params['label_type'] = args.label_type + params['batch_size'] = args.batch_size + params['accum_count'] = args.accum_count + params['max_lr'] = args.max_lr + params['warmup_steps'] = args.warmup_steps + params['n_epochs'] = args.n_epochs + params['valid_steps'] = args.valid_steps + return devices, params + +def train_model(args): + + # check if the data_path and save_path exists + data_paths = get_data_path(args.mode, args.label_type) + for name in data_paths: + assert exists(data_paths[name]) + if not exists(args.save_path): + os.makedirs(args.save_path) + + # load summarization datasets + datasets = BertSumLoader().process(data_paths) + print('Information of dataset is:') + print(datasets) + train_set = datasets.datasets['train'] + valid_set = datasets.datasets['val'] + + # configure training + devices, train_params = configure_training(args) + with open(join(args.save_path, 'params.json'), 'w') as f: + json.dump(train_params, f, indent=4) + print('Devices is:') + print(devices) + + # configure model + model = BertSum() + optimizer = Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0) + callbacks = [MyCallback(args), SaveModelCallback(args.save_path)] + criterion = MyBCELoss() + val_metric = [LossMetric()] + # sampler = BucketSampler(num_buckets=32, batch_size=args.batch_size) + trainer = Trainer(train_data=train_set, model=model, optimizer=optimizer, + loss=criterion, batch_size=args.batch_size, # sampler=sampler, + update_every=args.accum_count, n_epochs=args.n_epochs, + print_every=100, dev_data=valid_set, metrics=val_metric, + metric_key='-loss', validate_every=args.valid_steps, + save_path=args.save_path, device=devices, callbacks=callbacks) + + print('Start training with the following hyper-parameters:') + print(train_params) + trainer.train() + +def test_model(args): + + models = os.listdir(args.save_path) + + # load dataset + data_paths = get_data_path(args.mode, args.label_type) + datasets = BertSumLoader().process(data_paths) + print('Information of dataset is:') + print(datasets) + test_set = datasets.datasets['test'] + + # only need 1 gpu for testing + device = int(args.gpus) + + args.batch_size = 1 + + for cur_model in models: + + print('Current model is {}'.format(cur_model)) + + # load model + model = torch.load(join(args.save_path, cur_model)) + + # configure testing + original_path, dec_path, ref_path = get_rouge_path(args.label_type) + test_metric = RougeMetric(data_path=original_path, dec_path=dec_path, + ref_path=ref_path, n_total = len(test_set)) + tester = Tester(data=test_set, model=model, metrics=[test_metric], + batch_size=args.batch_size, device=device) + tester.test() + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='training/testing of BertSum(liu et al. 2019)' + ) + parser.add_argument('--mode', required=True, + help='training or testing of BertSum', type=str) + + parser.add_argument('--label_type', default='greedy', + help='greedy/limit', type=str) + parser.add_argument('--save_path', required=True, + help='root of the model', type=str) + # example for gpus input: '0,1,2,3' + parser.add_argument('--gpus', required=True, + help='available gpus for training(separated by commas)', type=str) + + parser.add_argument('--batch_size', default=18, + help='the training batch size', type=int) + parser.add_argument('--accum_count', default=2, + help='number of updates steps to accumulate before performing a backward/update pass.', type=int) + parser.add_argument('--max_lr', default=2e-5, + help='max learning rate for warm up', type=float) + parser.add_argument('--warmup_steps', default=10000, + help='warm up steps for training', type=int) + parser.add_argument('--n_epochs', default=10, + help='total number of training epochs', type=int) + parser.add_argument('--valid_steps', default=1000, + help='number of update steps for checkpoint and validation', type=int) + + args = parser.parse_args() + + if args.mode == 'train': + print('Training process of BertSum !!!') + train_model(args) + else: + print('Testing process of BertSum !!!') + test_model(args) + + + + diff --git a/fastSum/BertSum/utils.py b/fastSum/BertSum/utils.py new file mode 100644 index 0000000..2ba848b --- /dev/null +++ b/fastSum/BertSum/utils.py @@ -0,0 +1,24 @@ +import os +from os.path import exists + +def get_data_path(mode, label_type): + paths = {} + if mode == 'train': + paths['train'] = 'data/' + label_type + '/bert.train.jsonl' + paths['val'] = 'data/' + label_type + '/bert.val.jsonl' + else: + paths['test'] = 'data/' + label_type + '/bert.test.jsonl' + return paths + +def get_rouge_path(label_type): + if label_type == 'others': + data_path = 'data/' + label_type + '/bert.test.jsonl' + else: + data_path = 'data/' + label_type + '/test.jsonl' + dec_path = 'dec' + ref_path = 'ref' + if not exists(ref_path): + os.makedirs(ref_path) + if not exists(dec_path): + os.makedirs(dec_path) + return data_path, dec_path, ref_path diff --git a/fastSum/Dataloader/summarizationLoader.py b/fastSum/Dataloader/summarizationLoader.py new file mode 100644 index 0000000..54e0e5f --- /dev/null +++ b/fastSum/Dataloader/summarizationLoader.py @@ -0,0 +1,462 @@ +import bisect +from time import time +from datetime import timedelta +from typing import Union, Dict + +from fastNLP.io.loader import JsonLoader +from fastNLP.modules.tokenizer import BertTokenizer +from fastNLP.io.data_bundle import DataBundle +from fastNLP.core.const import Const +from fastNLP.io.file_utils import get_cache_path, _get_dataset_url, cached_path +import os +import random + +DATASET_DIR = { + # Summarization + 'ami': "AMI.zip", + "arxiv": "Arxiv.zip", + "billsum": "BillSum.zip", + "cnndm": "CNNDM.zip", + "icsi": "ICSI.zip", + "multi-news": "Multi-News.zip", + "pubmed": "Pubmed.zip", + "reddit tifu": "Reddit TIFU.zip", + "samsum": "SAMSum.zip", + "wikihow": "WikiHow.zip", + "xsum": "Xsum.zip" +} + + +class SumLoader(JsonLoader): + """ + 所有摘要数据集loader的父类 + """ + + def __init__(self): + fields = { + 'text': 'text', + 'summary': 'summary', + 'label': Const.TARGET + } + super(SumLoader, self).__init__(fields=fields) + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + pass + + def download(self, dataset_name): + default_cache_path = get_cache_path() + url = _get_dataset_url(dataset_name, DATASET_DIR) + output_dir = cached_path(url_or_filename=url, cache_dir=default_cache_path, name='dataset') + return output_dir + + +class CNNDMLoader(SumLoader): + ''' + CNNDM数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://www.aclweb.org/anthology/K16-1028/ + ''' + + def __init__(self): + super(CNNDMLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("ami") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'CNNDM.train.label.jsonl')): + raise FileNotFoundError(f"CNNDM.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'CNNDM.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'CNNDM.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'CNNDM.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class ArxivLoader(SumLoader): + ''' + Arxiv数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1804.05685 + ''' + + def __init__(self): + super(ArxivLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("arxiv") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'arxiv.train.label.jsonl')): + raise FileNotFoundError(f"arxiv.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'arxiv.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'arxiv.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'arxiv.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class BillSumLoader(SumLoader): + ''' + BillSum数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1910.00523 + ''' + + def __init__(self): + super(BillSumLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("billsum") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'billsum_us.train.label.jsonl')): + raise FileNotFoundError(f"billsum_us.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'billsum_us.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'billsum_ca.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'billsum_us.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class MultiNewsLoader(SumLoader): + ''' + MultiNews数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1906.01749 + ''' + + def __init__(self): + super(MultiNewsLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("multi-news") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'multinews.train.label.jsonl')): + raise FileNotFoundError(f"multinews.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'multinews.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'multinews.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'multinews.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class PubmedLoader(SumLoader): + ''' + Pubmed数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1804.05685 + ''' + + def __init__(self): + super(PubmedLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("pubmed") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'pubmed.train.label.jsonl')): + raise FileNotFoundError(f"pubmed.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'pubmed.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'pubmed.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'pubmed.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class SAMSumLoader(SumLoader): + ''' + SAMSum数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1911.12237 + ''' + + def __init__(self): + super(SAMSumLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("samsum") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'SAMSum.train.label.jsonl')): + raise FileNotFoundError(f"SAMSum.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'SAMSum.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'SAMSum.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'SAMSum.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class WikiHowLoader(SumLoader): + ''' + WikiHow数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1810.09305 + ''' + + def __init__(self): + super(WikiHowLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("wikihow") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'wikihow.train.label.jsonl')): + raise FileNotFoundError(f"wikihow.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'wikihow.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'wikihow.val.label.jsonl') + _paths['test'] = os.path.join(paths, 'wikihow.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class XsumLoader(SumLoader): + ''' + Xsum数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1808.08745 + ''' + + def __init__(self): + super(XsumLoader, self).__init__() + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("xsum") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'xsum.train.label.jsonl')): + raise FileNotFoundError(f"xsum.train.label.jsonl is not found in {paths}") + _paths['train'] = os.path.join(paths, 'xsum.train.label.jsonl') + _paths['dev'] = os.path.join(paths, 'xsum.valid.label.jsonl') + _paths['test'] = os.path.join(paths, 'xsum.test.label.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class RedditTIFULoader(SumLoader): + ''' + Reddit TIFU数据集的loader + 如果您的文章使用了这份数据,请引用 + + https://arxiv.org/abs/1811.00783 + ''' + + def __init__(self, tag, valid_ratio=0.05, test_ratio=0.05): + super(RedditTIFULoader, self).__init__() + self.valid_ratio = valid_ratio + self.test_ratio = test_ratio + assert tag in ["long", "short"], "tag not valid (neither long nor short)!" + self.tag = tag + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("reddit tifu") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, f"tifu_{self.tag}.all.label.jsonl")): + raise FileNotFoundError(f"tifu_{self.tag}.all.label.jsonl is not found in {paths}") + + _split_set(f"tifu_{self.tag}.all.label", paths, split_name1="middev", split_name2="train", + ratio=self.valid_ratio + self.test_ratio) + if self.valid_ratio + self.test_ratio > 0: + _split_set('middev', paths, split_name1="test", split_name2="dev", + ratio=self.test_ratio / (self.valid_ratio + self.test_ratio)) + _paths['train'] = os.path.join(paths, 'train.jsonl') + if self.valid_ratio > 0: + _paths['dev'] = os.path.join(paths, 'dev.jsonl') + if self.test_ratio > 0: + _paths['test'] = os.path.join(paths, 'test.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class AMILoader(SumLoader): + ''' + AMI数据集的loader + 如果您的文章使用了这份数据,请引用 + + http://groups.inf.ed.ac.uk/ami/download/ + ''' + + def __init__(self, valid_ratio=0.05, test_ratio=0.05): + super(AMILoader, self).__init__() + self.valid_ratio = valid_ratio + self.test_ratio = test_ratio + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("ami") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'AMI.jsonl')): + raise FileNotFoundError(f"AMI.jsonl is not found in {paths}") + + _split_set('AMI', paths, split_name1="middev", split_name2="train", + ratio=self.valid_ratio + self.test_ratio) + if self.valid_ratio + self.test_ratio > 0: + _split_set('middev', paths, split_name1="test", split_name2="dev", + ratio=self.test_ratio / (self.valid_ratio + self.test_ratio)) + _paths['train'] = os.path.join(paths, 'train.jsonl') + if self.valid_ratio > 0: + _paths['dev'] = os.path.join(paths, 'dev.jsonl') + if self.test_ratio > 0: + _paths['test'] = os.path.join(paths, 'test.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +class ICSILoader(SumLoader): + ''' + ICSI数据集的loader + 如果您的文章使用了这份数据,请引用 + + http://groups.inf.ed.ac.uk/ami/icsi/ + ''' + + def __init__(self, valid_ratio=0.05, test_ratio=0.05): + super(ICSILoader, self).__init__() + self.valid_ratio = valid_ratio + self.test_ratio = test_ratio + + def load(self, paths: Union[str, Dict[str, str]] = None) -> DataBundle: + if paths is None: + paths = self.download("icsi") + + _paths = {} + if paths: + if os.path.isdir(paths): + if not os.path.isfile(os.path.join(paths, 'ICSI.jsonl')): + raise FileNotFoundError(f"ICSI.jsonl is not found in {paths}") + + _split_set('ICSI', paths, split_name1="middev", split_name2="train", + ratio=self.valid_ratio + self.test_ratio) + if self.valid_ratio + self.test_ratio > 0: + _split_set('middev', paths, split_name1="test", split_name2="dev", + ratio=self.test_ratio / (self.valid_ratio + self.test_ratio)) + _paths['train'] = os.path.join(paths, 'train.jsonl') + if self.valid_ratio > 0: + _paths['dev'] = os.path.join(paths, 'dev.jsonl') + if self.test_ratio > 0: + _paths['test'] = os.path.join(paths, 'test.jsonl') + paths = _paths + else: + raise NotADirectoryError(f"{paths} is not a valid directory.") + + datasets = {name: self._load(path) for name, path in paths.items()} + data_bundle = DataBundle(datasets=datasets) + return data_bundle + + +def _split_set(dataset_name, data_dir, split_name1="dev", split_name2="train", ratio=0.0, suffix='jsonl'): + if ratio == 0: + os.renames(os.path.join(data_dir, f'{dataset_name}.{suffix}'), + os.path.join(data_dir, f'{split_name2}.{suffix}')) + return data_dir + + if not os.path.exists(os.path.join(data_dir, f'{split_name1}.{suffix}')): + if ratio > 0: + assert 0 < ratio < 1, "dev_ratio should be in range (0,1)." + try: + with open(os.path.join(data_dir, f'{dataset_name}.{suffix}'), 'r', encoding='utf-8') as f, \ + open(os.path.join(data_dir, f'middle_file.{suffix}'), 'w', encoding='utf-8') as f1, \ + open(os.path.join(data_dir, f'{split_name1}.{suffix}'), 'w', encoding='utf-8') as f2: + for line in f: + if random.random() < ratio: + f2.write(line) + else: + f1.write(line) + os.remove(os.path.join(data_dir, f'{dataset_name}.{suffix}')) + os.renames(os.path.join(data_dir, f'middle_file.{suffix}'), + os.path.join(data_dir, f'{split_name2}.{suffix}')) + finally: + if os.path.exists(os.path.join(data_dir, f'middle_file.{suffix}')): + os.remove(os.path.join(data_dir, f'middle_file.{suffix}')) + + return data_dir diff --git a/fastSum/MatchSum/README.md b/fastSum/MatchSum/README.md new file mode 100644 index 0000000..b1d06fe --- /dev/null +++ b/fastSum/MatchSum/README.md @@ -0,0 +1,83 @@ +# MatchSum +Codes and readme are from *[maszhongming/MatchSum](https://github.com/maszhongming/MatchSum)*, Thanks for code provider [Ming Zhong](https://github.com/maszhongming) +
+Code for ACL 2020 paper: *[Extractive Summarization as Text Matching](https://arxiv.org/abs/2004.08795)* + + +## Dependencies +- Python 3.7 +- [PyTorch](https://github.com/pytorch/pytorch) 1.4.0 +- [fastNLP](https://github.com/fastnlp/fastNLP) 0.5.0 +- [pyrouge](https://github.com/bheinzerling/pyrouge) 0.1.3 + - You should fill your ROUGE path in metrics.py line 20 before running our code. +- [rouge](https://github.com/pltrdy/rouge) 1.0.0 + - Used in the validation phase. +- [transformers](https://github.com/huggingface/transformers) 2.5.1 + + +All code only supports running on Linux. + +## Data + +We have already processed CNN/DailyMail dataset, you can download it through [this link](https://drive.google.com/open?id=1FG4oiQ6rknIeL2WLtXD0GWyh6pBH9-hX), unzip and move it to `./data`. It contains two versions (BERT/RoBERTa) of the dataset, a total of six files. + +In addition, we have released five other processed datasets (WikiHow, PubMed, XSum, MultiNews, Reddit), which you can find [here](https://drive.google.com/file/d/1PnFCwqSzAUr78uEcA_Q15yupZ5bTAQIb/view?usp=sharing). + +## Train + +We use eight Tesla-V100-16G GPUs to train our model, the training time is about 30 hours. If you do not have enough video memory, you can reduce the *batch_size* or *candidate_num* in `train_matching.py`, or you can adjust *max_len* in `dataloader.py`. + +You can choose BERT or RoBERTa as the encoder of **MatchSum**, for example, to train a RoBERTa model, you can run the following command: + +``` +CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python train_matching.py --mode=train --encoder=roberta --save_path=./roberta --gpus=0,1,2,3,4,5,6,7 +``` + +## Test + +After completing the training process, several best checkpoints are stored in a folder named after the training start time, for example, `./roberta/2020-04-12-09-24-51`. You can run the following command to get the results on test set (only one GPU is required for testing): + +``` +CUDA_VISIBLE_DEVICES=0 python train_matching.py --mode=test --encoder=roberta --save_path=./roberta/2020-04-12-09-24-51/ --gpus=0 +``` +The ROUGE score will be printed on the screen, and the output of the model will be stored in the folder `./roberta/result`. + +## Results on CNN/DailyMail +Test set (the average of three runs) + +| Model | R-1 | R-2 | R-L | +| :------ | :------: | :------: | :------: | +| MatchSum (BERT-base) | 44.22 | 20.62 | 40.38 | +| MatchSum (RoBERTa-base) | 44.41 | 20.86 | 40.55 | + +## Generated Summaries +The summaries generated by our models on the CNN/DM dataset can be found [here](https://drive.google.com/open?id=11_eSZkuwtK4bJa_L3z2eblz4iwRXOLzU). In the version we released, the result of **MatchSum(BERT)** is 44.26/20.58/40.40 (R-1/R-2/R-L), and the result of **MatchSum(RoBERTa)** is 44.45/20.88/40.60. + +The summaries generated on other datasets can be found [here](https://drive.google.com/open?id=1iNY1hT_4ZFJZVeyyP1eeoVY14Ej7l9im). + +## Pretrained Model +Two versions of the pre-trained model on CNN/DM are available [here](https://drive.google.com/file/d/1PxMHpDSvP1OJfj1et4ToklevQzcPr-HQ/view?usp=sharing). You can use them through `torch.load`. For example, + +``` +model = torch.load('MatchSum_cnndm_bert.ckpt') +``` + +Besides, the pre-trained models on other datasets can be found [here](https://drive.google.com/open?id=1EzRE7aEsyBKCeXJHKSunaR89QoPhdij5). + +## Process Your Own Data + +If you want to process your own data and get candidate summaries for each document, first you need to convert your dataset to the same *jsonl* format as ours, and make sure to include *text* and *summary* fields. Second, you should use BertExt or other methods to select some important sentences from each document and get an *index.jsonl* file (we provide an example in `./preprocess/test_cnndm.jsonl`). + +Then you can run the following command: + +``` +python get_candidate.py --tokenizer=bert --data_path=/path/to/your_original_data.jsonl --index_path=/path/to/your_index.jsonl --write_path=/path/to/store/your_processed_data.jsonl +``` + +Please fill your ROUGE path in `preprocess/get_candidate.py` line 22 before running this command. It is worth noting that you need to adjust the number of candidate summaries and the number of sentences in the candidate summaries according to your dataset. For details, see line 89-97 in `preprocess/get_candidate.py`. + +After processing the dataset, and before using our code to train your own model, please adjust *candidate_num* in `train_matching.py` and *max_len* in `dataloader.py` according to the number and the length of the candidate summaries in your dataset. + +## Note + +The code and data released here are used for the matching model. Before the matching stage, we use BertExt to prune meaningless candidate summaries, the implementation of BertExt can refer to [PreSumm](https://github.com/nlpyang/PreSumm). diff --git a/fastSum/MatchSum/callback.py b/fastSum/MatchSum/callback.py new file mode 100644 index 0000000..afe66a2 --- /dev/null +++ b/fastSum/MatchSum/callback.py @@ -0,0 +1,32 @@ +import os +import torch +import sys +from torch import nn +from os.path import join + +from fastNLP.core.callback import Callback + +class MyCallback(Callback): + def __init__(self, args): + super(MyCallback, self).__init__() + self.args = args + self.real_step = 0 + + def on_valid_begin(self): + with open(join(self._trainer.save_path, 'train_info.txt'), 'a') as f: + print('Current step is: {}'.format(self.step), file=f) + + def on_step_end(self): + # warm up + if self.step % self.update_every == 0 and self.step > 0: + self.real_step += 1 + cur_lr = self.args.max_lr * 100 * min(self.real_step ** (-0.5), self.real_step * self.args.warmup_steps**(-1.5)) + for param_group in self.optimizer.param_groups: + param_group['lr'] = cur_lr + + if self.real_step % 1000 == 0: + self.pbar.write('Current learning rate is {:.8f}, real_step: {}'.format(cur_lr, self.real_step)) + + def on_epoch_end(self): + self.pbar.write('Epoch {} is done !!!'.format(self.epoch)) + diff --git a/fastSum/MatchSum/dataloader.py b/fastSum/MatchSum/dataloader.py new file mode 100644 index 0000000..48d9340 --- /dev/null +++ b/fastSum/MatchSum/dataloader.py @@ -0,0 +1,92 @@ +from time import time +from datetime import timedelta + +from fastNLP.io.loader import JsonLoader +from fastNLP.io.data_bundle import DataBundle +from fastNLP.io.pipe.pipe import Pipe +from fastNLP.core.const import Const + +class MatchSumLoader(JsonLoader): + + def __init__(self, candidate_num, encoder, max_len=180): + fields = {'text_id': 'text_id', + 'candidate_id': 'candidate_id', + 'summary_id': 'summary_id' + } + super(MatchSumLoader, self).__init__(fields=fields) + + self.candidate_num = candidate_num + self.max_len = max_len + self.encoder = encoder + + if encoder == 'bert': + self.sep_id = [102] # '[SEP]' (BERT) + else: + self.sep_id = [2] # '' (RoBERTa) + + def _load(self, path): + dataset = super(MatchSumLoader, self)._load(path) + return dataset + + def load(self, paths): + + def get_seq_len(instance): + return len(instance['text_id']) + + def sample(instance, candidate_num): + candidate_id = instance['candidate_id'][:candidate_num] + return candidate_id + + def truncate_candidate_id(instance, max_len): + candidate_id = [] + for i in range(len(instance['candidate_id'])): + if len(instance['candidate_id'][i]) > max_len: + cur_id = instance['candidate_id'][i][:(max_len - 1)] + cur_id += self.sep_id + else: + cur_id = instance['candidate_id'][i] + candidate_id.append(cur_id) + return candidate_id + + print('Start loading datasets !!!') + start = time() + + # load datasets + datasets = {} + for name in paths: + datasets[name] = self._load(paths[name]) + + if name == 'train': + datasets[name].apply(lambda ins: truncate_candidate_id(ins, self.max_len), new_field_name='candidate_id') + + # set input and target + datasets[name].set_input('text_id', 'candidate_id', 'summary_id') + + # set padding value + if self.encoder == 'bert': + pad_id = 0 + else: + pad_id = 1 # for RoBERTa + datasets[name].set_pad_val('text_id', pad_id) + datasets[name].set_pad_val('candidate_id', pad_id) + datasets[name].set_pad_val('summary_id', pad_id) + + print('Finished in {}'.format(timedelta(seconds=time()-start))) + + return DataBundle(datasets=datasets) + +class MatchSumPipe(Pipe): + + def __init__(self, candidate_num, encoder): + super(MatchSumPipe, self).__init__() + self.candidate_num = candidate_num + self.encoder = encoder + + def process(self, data_bundle): + + return data_bundle + + def process_from_file(self, paths): + data_bundle = MatchSumLoader(self.candidate_num, self.encoder).load(paths) + return self.process(data_bundle) + diff --git a/fastSum/MatchSum/metrics.py b/fastSum/MatchSum/metrics.py new file mode 100644 index 0000000..fb0d9d2 --- /dev/null +++ b/fastSum/MatchSum/metrics.py @@ -0,0 +1,209 @@ +import numpy as np + +import json +from os.path import join +import torch +import logging +import tempfile +import subprocess as sp +from datetime import timedelta +from time import time +from itertools import combinations + +from pyrouge import Rouge155 +from pyrouge.utils import log +from rouge import Rouge + +from fastNLP.core.losses import LossBase +from fastNLP.core.metrics import MetricBase + +_ROUGE_PATH = '/path/to/RELEASE-1.5.5' + +class MarginRankingLoss(LossBase): + + def __init__(self, margin, score=None, summary_score=None): + super(MarginRankingLoss, self).__init__() + self._init_param_map(score=score, summary_score=summary_score) + self.margin = margin + self.loss_func = torch.nn.MarginRankingLoss(margin) + + def get_loss(self, score, summary_score): + + # equivalent to initializing TotalLoss to 0 + # here is to avoid that some special samples will not go into the following for loop + ones = torch.ones(score.size()).cuda(score.device) + loss_func = torch.nn.MarginRankingLoss(0.0) + TotalLoss = loss_func(score, score, ones) + + # candidate loss + n = score.size(1) + for i in range(1, n): + pos_score = score[:, :-i] + neg_score = score[:, i:] + pos_score = pos_score.contiguous().view(-1) + neg_score = neg_score.contiguous().view(-1) + ones = torch.ones(pos_score.size()).cuda(score.device) + loss_func = torch.nn.MarginRankingLoss(self.margin * i) + TotalLoss += loss_func(pos_score, neg_score, ones) + + # gold summary loss + pos_score = summary_score.unsqueeze(-1).expand_as(score) + neg_score = score + pos_score = pos_score.contiguous().view(-1) + neg_score = neg_score.contiguous().view(-1) + ones = torch.ones(pos_score.size()).cuda(score.device) + loss_func = torch.nn.MarginRankingLoss(0.0) + TotalLoss += loss_func(pos_score, neg_score, ones) + + return TotalLoss + +class ValidMetric(MetricBase): + def __init__(self, save_path, data, score=None): + super(ValidMetric, self).__init__() + self._init_param_map(score=score) + + self.save_path = save_path + self.data = data + + self.top1_correct = 0 + self.top6_correct = 0 + self.top10_correct = 0 + + self.rouge = Rouge() + self.ROUGE = 0.0 + self.Error = 0 + + self.cur_idx = 0 + + # an approximate method of calculating ROUGE + def fast_rouge(self, dec, ref): + if dec == '' or ref == '': + return 0.0 + scores = self.rouge.get_scores(dec, ref) + return (scores[0]['rouge-1']['f'] + scores[0]['rouge-2']['f'] + scores[0]['rouge-l']['f']) / 3 + + def evaluate(self, score): + batch_size = score.size(0) + self.top1_correct += int(torch.sum(torch.max(score, dim=1).indices == 0)) + self.top6_correct += int(torch.sum(torch.max(score, dim=1).indices <= 5)) + self.top10_correct += int(torch.sum(torch.max(score, dim=1).indices <= 9)) + + # Fast ROUGE + for i in range(batch_size): + max_idx = int(torch.max(score[i], dim=0).indices) + if max_idx >= len(self.data[self.cur_idx]['indices']): + self.Error += 1 # Check if the candidate summary generated by padding is selected + self.cur_idx += 1 + continue + ext_idx = self.data[self.cur_idx]['indices'][max_idx] + ext_idx.sort() + dec = [] + ref = ' '.join(self.data[self.cur_idx]['summary']) + for j in ext_idx: + dec.append(self.data[self.cur_idx]['text'][j]) + dec = ' '.join(dec) + self.ROUGE += self.fast_rouge(dec, ref) + self.cur_idx += 1 + + def get_metric(self, reset=True): + top1_accuracy = self.top1_correct / self.cur_idx + top6_accuracy = self.top6_correct / self.cur_idx + top10_accuracy = self.top10_correct / self.cur_idx + ROUGE = self.ROUGE / self.cur_idx + eval_result = {'top1_accuracy': top1_accuracy, 'top6_accuracy': top6_accuracy, + 'top10_accuracy': top10_accuracy, 'Error': self.Error, 'ROUGE': ROUGE} + with open(join(self.save_path, 'train_info.txt'), 'a') as f: + print('top1_accuracy = {}, top6_accuracy = {}, top10_accuracy = {}, Error = {}, ROUGE = {}'.format( + top1_accuracy, top6_accuracy, top10_accuracy, self.Error, ROUGE), file=f) + if reset: + self.top1_correct = 0 + self.top6_correct = 0 + self.top10_correct = 0 + self.ROUGE = 0.0 + self.Error = 0 + self.cur_idx = 0 + return eval_result + +class MatchRougeMetric(MetricBase): + def __init__(self, data, dec_path, ref_path, n_total, score=None): + super(MatchRougeMetric, self).__init__() + self._init_param_map(score=score) + self.data = data + self.dec_path = dec_path + self.ref_path = ref_path + self.n_total = n_total + self.cur_idx = 0 + self.ext = [] + self.start = time() + + + def evaluate(self, score): + ext = int(torch.max(score, dim=1).indices) # batch_size = 1 + self.ext.append(ext) + self.cur_idx += 1 + print('{}/{} ({:.2f}%) decoded in {} seconds\r'.format( + self.cur_idx, self.n_total, self.cur_idx/self.n_total*100, timedelta(seconds=int(time()-self.start)) + ), end='') + + def get_metric(self, reset=True): + + print('\nStart writing files !!!') + for i, ext in enumerate(self.ext): + sent_ids = self.data[i]['indices'][ext] + dec, ref = [], [] + + for j in sent_ids: + dec.append(self.data[i]['text'][j]) + for sent in self.data[i]['summary']: + ref.append(sent) + + with open(join(self.dec_path, '{}.dec'.format(i)), 'w') as f: + for sent in dec: + print(sent, file=f) + with open(join(self.ref_path, '{}.ref'.format(i)), 'w') as f: + for sent in ref: + print(sent, file=f) + + print('Start evaluating ROUGE score !!!') + R_1, R_2, R_L = MatchRougeMetric.eval_rouge(self.dec_path, self.ref_path) + eval_result = {'ROUGE-1': R_1, 'ROUGE-2': R_2, 'ROUGE-L':R_L} + + if reset == True: + self.cur_idx = 0 + self.ext = [] + self.data = [] + self.start = time() + return eval_result + + @staticmethod + def eval_rouge(dec_dir, ref_dir, Print=True): + assert _ROUGE_PATH is not None + log.get_global_console_logger().setLevel(logging.WARNING) + dec_pattern = '(\d+).dec' + ref_pattern = '#ID#.ref' + cmd = '-c 95 -r 1000 -n 2 -m' + with tempfile.TemporaryDirectory() as tmp_dir: + Rouge155.convert_summaries_to_rouge_format( + dec_dir, join(tmp_dir, 'dec')) + Rouge155.convert_summaries_to_rouge_format( + ref_dir, join(tmp_dir, 'ref')) + Rouge155.write_config_static( + join(tmp_dir, 'dec'), dec_pattern, + join(tmp_dir, 'ref'), ref_pattern, + join(tmp_dir, 'settings.xml'), system_id=1 + ) + cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') + + ' -e {} '.format(join(_ROUGE_PATH, 'data')) + + cmd + + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) + output = sp.check_output(cmd.split(' '), universal_newlines=True) + R_1 = float(output.split('\n')[3].split(' ')[3]) + R_2 = float(output.split('\n')[7].split(' ')[3]) + R_L = float(output.split('\n')[11].split(' ')[3]) + print(output) + if Print is True: + rouge_path = join(dec_dir, '../ROUGE.txt') + with open(rouge_path, 'w') as f: + print(output, file=f) + return R_1, R_2, R_L + diff --git a/fastSum/MatchSum/model.py b/fastSum/MatchSum/model.py new file mode 100644 index 0000000..e7da64d --- /dev/null +++ b/fastSum/MatchSum/model.py @@ -0,0 +1,57 @@ +import torch +from torch import nn +from torch.nn import init + +from transformers import BertModel, RobertaModel + +class MatchSum(nn.Module): + + def __init__(self, candidate_num, encoder, hidden_size=768): + super(MatchSum, self).__init__() + + self.hidden_size = hidden_size + self.candidate_num = candidate_num + + if encoder == 'bert': + self.encoder = BertModel.from_pretrained('bert-base-uncased') + else: + self.encoder = RobertaModel.from_pretrained('roberta-base') + + def forward(self, text_id, candidate_id, summary_id): + + batch_size = text_id.size(0) + + pad_id = 0 # for BERT + if text_id[0][0] == 0: + pad_id = 1 # for RoBERTa + + # get document embedding + input_mask = ~(text_id == pad_id) + out = self.encoder(text_id, attention_mask=input_mask)[0] # last layer + doc_emb = out[:, 0, :] + assert doc_emb.size() == (batch_size, self.hidden_size) # [batch_size, hidden_size] + + # get summary embedding + input_mask = ~(summary_id == pad_id) + out = self.encoder(summary_id, attention_mask=input_mask)[0] # last layer + summary_emb = out[:, 0, :] + assert summary_emb.size() == (batch_size, self.hidden_size) # [batch_size, hidden_size] + + # get summary score + summary_score = torch.cosine_similarity(summary_emb, doc_emb, dim=-1) + + # get candidate embedding + candidate_num = candidate_id.size(1) + candidate_id = candidate_id.view(-1, candidate_id.size(-1)) + input_mask = ~(candidate_id == pad_id) + out = self.encoder(candidate_id, attention_mask=input_mask)[0] + candidate_emb = out[:, 0, :].view(batch_size, candidate_num, self.hidden_size) # [batch_size, candidate_num, hidden_size] + assert candidate_emb.size() == (batch_size, candidate_num, self.hidden_size) + + # get candidate score + doc_emb = doc_emb.unsqueeze(1).expand_as(candidate_emb) + score = torch.cosine_similarity(candidate_emb, doc_emb, dim=-1) # [batch_size, candidate_num] + assert score.size() == (batch_size, candidate_num) + + return {'score': score, 'summary_score': summary_score} + diff --git a/fastSum/MatchSum/preprocess/get_candidate.py b/fastSum/MatchSum/preprocess/get_candidate.py new file mode 100644 index 0000000..dbe34ba --- /dev/null +++ b/fastSum/MatchSum/preprocess/get_candidate.py @@ -0,0 +1,223 @@ +import os +import argparse +from os.path import join, exists +import subprocess as sp +import json +import tempfile +import multiprocessing as mp +from time import time +from datetime import timedelta +import queue +import logging +from itertools import combinations + +from cytoolz import curry +from pyrouge.utils import log +from pyrouge import Rouge155 + +from transformers import BertTokenizer, RobertaTokenizer + +MAX_LEN = 512 + +_ROUGE_PATH = '/path/to/RELEASE-1.5.5' +temp_path = './temp' # path to store some temporary files + +original_data, sent_ids = [], [] + +def load_jsonl(data_path): + data = [] + with open(data_path) as f: + for line in f: + data.append(json.loads(line)) + return data + +def get_rouge(path, dec): + log.get_global_console_logger().setLevel(logging.WARNING) + dec_pattern = '(\d+).dec' + ref_pattern = '#ID#.ref' + dec_dir = join(path, 'decode') + ref_dir = join(path, 'reference') + + with open(join(dec_dir, '0.dec'), 'w') as f: + for sentence in dec: + print(sentence, file=f) + + cmd = '-c 95 -r 1000 -n 2 -m' + with tempfile.TemporaryDirectory() as tmp_dir: + Rouge155.convert_summaries_to_rouge_format( + dec_dir, join(tmp_dir, 'dec')) + Rouge155.convert_summaries_to_rouge_format( + ref_dir, join(tmp_dir, 'ref')) + Rouge155.write_config_static( + join(tmp_dir, 'dec'), dec_pattern, + join(tmp_dir, 'ref'), ref_pattern, + join(tmp_dir, 'settings.xml'), system_id=1 + ) + cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') + + ' -e {} '.format(join(_ROUGE_PATH, 'data')) + + cmd + + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) + output = sp.check_output(cmd.split(' '), universal_newlines=True) + + line = output.split('\n') + rouge1 = float(line[3].split(' ')[3]) + rouge2 = float(line[7].split(' ')[3]) + rougel = float(line[11].split(' ')[3]) + return (rouge1 + rouge2 + rougel) / 3 + +@curry +def get_candidates(tokenizer, cls, sep_id, idx): + + idx_path = join(temp_path, str(idx)) + + # create some temporary files to calculate ROUGE + sp.call('mkdir ' + idx_path, shell=True) + sp.call('mkdir ' + join(idx_path, 'decode'), shell=True) + sp.call('mkdir ' + join(idx_path, 'reference'), shell=True) + + # load data + data = {} + data['text'] = original_data[idx]['text'] + data['summary'] = original_data[idx]['summary'] + + # write reference summary to temporary files + ref_dir = join(idx_path, 'reference') + with open(join(ref_dir, '0.ref'), 'w') as f: + for sentence in data['summary']: + print(sentence, file=f) + + # get candidate summaries + # here is for CNN/DM: truncate each document into the 5 most important sentences (using BertExt), + # then select any 2 or 3 sentences to form a candidate summary, so there are C(5,2)+C(5,3)=20 candidate summaries. + # if you want to process other datasets, you may need to adjust these numbers according to specific situation. + sent_id = sent_ids[idx]['sent_id'][:5] + indices = list(combinations(sent_id, 2)) + indices += list(combinations(sent_id, 3)) + if len(sent_id) < 2: + indices = [sent_id] + + # get ROUGE score for each candidate summary and sort them in descending order + score = [] + for i in indices: + i = list(i) + i.sort() + # write dec + dec = [] + for j in i: + sent = data['text'][j] + dec.append(sent) + score.append((i, get_rouge(idx_path, dec))) + score.sort(key=lambda x : x[1], reverse=True) + + # write candidate indices and score + data['ext_idx'] = sent_id + data['indices'] = [] + data['score'] = [] + for i, R in score: + data['indices'].append(list(map(int, i))) + data['score'].append(R) + + # tokenize and get candidate_id + candidate_summary = [] + for i in data['indices']: + cur_summary = [cls] + for j in i: + cur_summary += data['text'][j].split() + cur_summary = cur_summary[:MAX_LEN] + cur_summary = ' '.join(cur_summary) + candidate_summary.append(cur_summary) + + data['candidate_id'] = [] + for summary in candidate_summary: + token_ids = tokenizer.encode(summary, add_special_tokens=False)[:(MAX_LEN - 1)] + token_ids += sep_id + data['candidate_id'].append(token_ids) + + # tokenize and get text_id + text = [cls] + for sent in data['text']: + text += sent.split() + text = text[:MAX_LEN] + text = ' '.join(text) + token_ids = tokenizer.encode(text, add_special_tokens=False)[:(MAX_LEN - 1)] + token_ids += sep_id + data['text_id'] = token_ids + + # tokenize and get summary_id + summary = [cls] + for sent in data['summary']: + summary += sent.split() + summary = summary[:MAX_LEN] + summary = ' '.join(summary) + token_ids = tokenizer.encode(summary, add_special_tokens=False)[:(MAX_LEN - 1)] + token_ids += sep_id + data['summary_id'] = token_ids + + # write processed data to temporary file + processed_path = join(temp_path, 'processed') + with open(join(processed_path, '{}.json'.format(idx)), 'w') as f: + json.dump(data, f, indent=4) + + sp.call('rm -r ' + idx_path, shell=True) + +def get_candidates_mp(args): + + # choose tokenizer + if args.tokenizer == 'bert': + tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') + cls, sep = '[CLS]', '[SEP]' + else: + tokenizer = RobertaTokenizer.from_pretrained('roberta-base') + cls, sep = '', '' + sep_id = tokenizer.encode(sep, add_special_tokens=False) + + # load original data and indices + global original_data, sent_ids + original_data = load_jsonl(args.data_path) + sent_ids = load_jsonl(args.index_path) + n_files = len(original_data) + assert len(sent_ids) == len(original_data) + print('total {} documents'.format(n_files)) + os.makedirs(temp_path) + processed_path = join(temp_path, 'processed') + os.makedirs(processed_path) + + # use multi-processing to get candidate summaries + start = time() + print('start getting candidates with multi-processing !!!') + + with mp.Pool() as pool: + list(pool.imap_unordered(get_candidates(tokenizer, cls, sep_id), range(n_files), chunksize=64)) + + print('finished in {}'.format(timedelta(seconds=time()-start))) + + # write processed data + print('start writing {} files'.format(n_files)) + for i in range(n_files): + with open(join(processed_path, '{}.json'.format(i))) as f: + data = json.loads(f.read()) + with open(args.write_path, 'a') as f: + print(json.dumps(data), file=f) + + os.system('rm -r {}'.format(temp_path)) + +if __name__ == '__main__': + + parser = argparse.ArgumentParser( + description='Process truncated documents to obtain candidate summaries' + ) + parser.add_argument('--tokenizer', type=str, required=True, + help='BERT/RoBERTa') + parser.add_argument('--data_path', type=str, required=True, + help='path to the original dataset, the original dataset should contain text and summary') + parser.add_argument('--index_path', type=str, required=True, + help='indices of the remaining sentences of the truncated document') + parser.add_argument('--write_path', type=str, required=True, + help='path to store the processed dataset') + + args = parser.parse_args() + assert args.tokenizer in ['bert', 'roberta'] + assert exists(args.data_path) + assert exists(args.index_path) + + get_candidates_mp(args) diff --git a/fastSum/MatchSum/preprocess/test_cnndm.jsonl b/fastSum/MatchSum/preprocess/test_cnndm.jsonl new file mode 100644 index 0000000..c02b138 --- /dev/null +++ b/fastSum/MatchSum/preprocess/test_cnndm.jsonl @@ -0,0 +1,11489 @@ +{"sent_id": [1, 2, 3, 0, 6, 9]} +{"sent_id": [2, 0, 6, 3, 1, 15]} +{"sent_id": [4, 1, 0, 5, 2, 10]} +{"sent_id": [3, 1, 5, 0, 2, 9]} +{"sent_id": [1, 7, 9, 4, 11, 16]} +{"sent_id": [1, 8, 2, 3, 7, 0]} +{"sent_id": [3, 0, 6, 9, 1, 10]} +{"sent_id": [3, 1, 2, 13, 8, 7]} +{"sent_id": [1, 3, 0, 2, 9, 12]} +{"sent_id": [8, 3, 7, 2, 9, 4]} +{"sent_id": [2, 1, 10, 0, 11, 3]} +{"sent_id": [5, 4, 19, 12, 1, 13]} +{"sent_id": [2, 13, 8, 3, 1, 9]} +{"sent_id": [0, 3, 2, 1, 5, 6]} +{"sent_id": [3, 0, 2, 9, 4, 1]} +{"sent_id": [8, 1, 4, 12, 10, 0]} +{"sent_id": [0, 1, 2, 3, 10, 11]} +{"sent_id": [3, 4, 6, 5, 18, 7]} +{"sent_id": [2, 5, 9, 0, 4, 1]} +{"sent_id": [1, 2, 3, 24, 0, 25]} +{"sent_id": [3, 4, 6, 14, 1, 7]} +{"sent_id": [9, 0, 1, 6, 2, 5]} +{"sent_id": [0, 5, 4, 10, 1, 3]} +{"sent_id": [0, 1, 6, 8, 5, 4]} +{"sent_id": [0, 1, 10, 2, 7, 3]} +{"sent_id": [0, 6, 19, 2, 1, 3]} +{"sent_id": [6, 4, 2, 5, 10, 13]} +{"sent_id": [1, 4, 0, 5, 6, 3]} +{"sent_id": [7, 0, 6, 9, 4, 15]} +{"sent_id": [3, 9, 4, 12, 2, 7]} +{"sent_id": [1, 5, 3, 4, 0, 2]} +{"sent_id": [1, 2, 3, 8, 9, 6]} +{"sent_id": [1, 2, 4, 5, 3, 6]} +{"sent_id": [1, 3, 2, 5, 0, 14]} +{"sent_id": [1, 7, 4, 2, 16, 8]} +{"sent_id": [1, 2, 0, 7, 5, 12]} +{"sent_id": [0, 2, 7, 6, 5, 9]} +{"sent_id": [2, 3, 4, 1, 6, 5]} +{"sent_id": [2, 3, 0, 1, 6, 9]} +{"sent_id": [3, 1, 9, 2, 0, 7]} +{"sent_id": [4, 11, 1, 2, 0, 6]} +{"sent_id": [1, 11, 7, 14, 0, 12]} +{"sent_id": [3, 6, 17, 2, 1, 4]} +{"sent_id": [11, 6, 19, 12, 13, 14]} +{"sent_id": [0, 4, 3, 5, 1, 8]} +{"sent_id": [2, 0, 4, 1, 3, 5]} +{"sent_id": [2, 1, 3, 11, 15, 0]} +{"sent_id": [1, 15, 7, 5, 16, 11]} +{"sent_id": [0, 5, 3, 4, 11, 10]} +{"sent_id": [3, 2, 1, 8, 14, 4]} +{"sent_id": [4, 2, 3, 0, 5, 11]} +{"sent_id": [4, 1, 2, 0, 5, 3]} +{"sent_id": [0, 2, 9, 10, 14, 1]} +{"sent_id": [3, 4, 0, 21, 5, 1]} +{"sent_id": [1, 3, 0, 6, 4, 5]} +{"sent_id": [12, 13, 0, 1, 15, 6]} +{"sent_id": [1, 2, 9, 3, 11, 13]} +{"sent_id": [4, 7, 10, 8, 0, 11]} +{"sent_id": [4, 1, 3, 2, 10, 5]} +{"sent_id": [0, 3, 1, 2, 5, 7]} +{"sent_id": [3, 1, 5, 0, 2, 4]} +{"sent_id": [3, 2, 4, 0, 5, 20]} +{"sent_id": [3, 2, 4, 1, 7, 0]} +{"sent_id": [5, 8, 6, 2, 3, 4]} +{"sent_id": [0, 3, 2, 5, 13, 14]} +{"sent_id": [0, 1, 3, 5, 2, 4]} +{"sent_id": [0, 2, 4, 3, 6, 7]} +{"sent_id": [1, 0, 2, 6, 3, 12]} +{"sent_id": [1, 3, 2, 8, 7, 4]} +{"sent_id": [5, 4, 13, 11, 16, 8]} +{"sent_id": [0, 2, 14, 3, 8, 9]} +{"sent_id": [2, 3, 16, 0, 9, 4]} +{"sent_id": [0, 1, 9, 2, 5, 10]} +{"sent_id": [1, 5, 3, 8, 4, 7]} +{"sent_id": [1, 3, 4, 12, 6, 7]} +{"sent_id": [4, 2, 9, 6, 13, 5]} +{"sent_id": [0, 1, 5, 4, 2, 3]} +{"sent_id": [1, 4, 2, 5, 6, 14]} +{"sent_id": [4, 2, 3, 1, 5, 0]} +{"sent_id": [1, 2, 5, 0, 3, 4]} +{"sent_id": [4, 5, 6, 1, 2, 19]} +{"sent_id": [3, 4, 1, 10, 0, 9]} +{"sent_id": [3, 1, 2, 7, 5, 11]} +{"sent_id": [1, 0, 3, 4, 13, 2]} +{"sent_id": [0, 1, 5, 3, 6, 2]} +{"sent_id": [1, 0, 2, 7, 6, 5]} +{"sent_id": [1, 2, 0, 4, 12, 10]} +{"sent_id": [1, 4, 6, 0, 9, 2]} +{"sent_id": [5, 20, 1, 9, 11, 8]} +{"sent_id": [0, 1, 4, 3, 24, 2]} +{"sent_id": [1, 2, 3, 10, 4, 0]} +{"sent_id": [3, 1, 2, 9, 15, 10]} +{"sent_id": [1, 6, 7, 2, 8, 0]} +{"sent_id": [3, 6, 2, 5, 15, 4]} +{"sent_id": [4, 11, 7, 3, 2, 13]} +{"sent_id": [0, 1, 10, 7, 12, 13]} +{"sent_id": [1, 5, 6, 13, 14, 0]} +{"sent_id": [0, 2, 1, 4, 14, 15]} +{"sent_id": [0, 9, 2, 12, 3, 15]} +{"sent_id": [2, 9, 10, 6, 4, 3]} +{"sent_id": [8, 0, 1, 13, 2, 4]} +{"sent_id": [0, 1, 7, 8, 4, 3]} +{"sent_id": [1, 5, 3, 2, 4, 6]} +{"sent_id": [2, 19, 3, 1, 20, 4]} +{"sent_id": [3, 1, 11, 0, 8, 5]} +{"sent_id": [9, 4, 3, 1, 2, 5]} +{"sent_id": [0, 1, 4, 2, 5, 12]} +{"sent_id": [5, 1, 0, 7, 6, 2]} +{"sent_id": [1, 2, 4, 0, 3, 10]} +{"sent_id": [1, 2, 3, 8, 4, 0]} +{"sent_id": [1, 7, 5, 2, 0, 8]} +{"sent_id": [2, 4, 5, 1, 7, 3]} +{"sent_id": [5, 4, 3, 0, 2, 1]} +{"sent_id": [15, 1, 2, 0, 3, 8]} +{"sent_id": [3, 1, 2, 4, 0, 8]} +{"sent_id": [1, 7, 2, 0, 5, 9]} +{"sent_id": [2, 3, 1, 11, 4, 6]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [1, 5, 9, 4, 3, 2]} +{"sent_id": [0, 11, 3, 2, 6, 1]} +{"sent_id": [1, 17, 0, 4, 14, 7]} +{"sent_id": [4, 9, 1, 0, 5, 2]} +{"sent_id": [2, 4, 0, 1, 5, 6]} +{"sent_id": [1, 2, 6, 3, 13, 9]} +{"sent_id": [2, 15, 4, 1, 3, 16]} +{"sent_id": [1, 2, 3, 6, 0, 7]} +{"sent_id": [2, 0, 11, 4, 12, 6]} +{"sent_id": [1, 2, 4, 6, 10, 3]} +{"sent_id": [0, 3, 6, 4, 5, 1]} +{"sent_id": [1, 2, 4, 3, 0, 8]} +{"sent_id": [3, 0, 1, 14, 12, 10]} +{"sent_id": [4, 3, 10, 2, 5, 6]} +{"sent_id": [1, 5, 4, 2, 0, 3]} +{"sent_id": [2, 14, 0, 3, 1, 8]} +{"sent_id": [6, 0, 3, 2, 1, 10]} +{"sent_id": [1, 6, 5, 14, 2, 7]} +{"sent_id": [2, 0, 14, 4, 3, 1]} +{"sent_id": [3, 4, 2, 8, 1, 7]} +{"sent_id": [1, 10, 2, 3, 4, 13]} +{"sent_id": [1, 4, 5, 3, 2, 6]} +{"sent_id": [5, 3, 4, 0, 7, 6]} +{"sent_id": [0, 2, 1, 3, 4, 10]} +{"sent_id": [3, 1, 8, 2, 5, 9]} +{"sent_id": [1, 5, 2, 11, 7, 6]} +{"sent_id": [1, 0, 2, 4, 3, 5]} +{"sent_id": [2, 1, 4, 5, 6, 3]} +{"sent_id": [2, 6, 3, 9, 8, 4]} +{"sent_id": [1, 5, 4, 0, 18, 17]} +{"sent_id": [4, 1, 0, 2, 3, 5]} +{"sent_id": [11, 5, 2, 4, 8, 1]} +{"sent_id": [4, 6, 3, 8, 1, 2]} +{"sent_id": [0, 12, 3, 2, 5, 1]} +{"sent_id": [2, 8, 5, 1, 3, 4]} +{"sent_id": [0, 6, 1, 2, 5, 3]} +{"sent_id": [7, 3, 10, 1, 2, 12]} +{"sent_id": [4, 0, 13, 2, 3, 1]} +{"sent_id": [3, 0, 4, 1, 2]} +{"sent_id": [1, 11, 9, 4, 2, 3]} +{"sent_id": [1, 0, 4, 7, 3, 2]} +{"sent_id": [2, 3, 0, 4, 6, 5]} +{"sent_id": [5, 2, 1, 0, 3, 9]} +{"sent_id": [1, 4, 3, 15, 2, 6]} +{"sent_id": [0, 1, 10, 13, 11, 7]} +{"sent_id": [15, 6, 2, 3, 11, 4]} +{"sent_id": [0, 1, 2, 3, 11, 7]} +{"sent_id": [2, 0, 1, 7, 11, 9]} +{"sent_id": [3, 2, 7, 5, 8, 4]} +{"sent_id": [4, 1, 3, 5, 2, 0]} +{"sent_id": [1, 6, 3, 5, 2, 0]} +{"sent_id": [4, 5, 15, 6, 0, 1]} +{"sent_id": [2, 1, 5, 6, 8, 7]} +{"sent_id": [1, 2, 3, 4, 6, 7]} +{"sent_id": [0, 8, 1, 4, 6, 2]} +{"sent_id": [3, 1, 5, 0, 2, 6]} +{"sent_id": [1, 4, 2, 11, 0, 9]} +{"sent_id": [1, 2, 8, 4, 3, 19]} +{"sent_id": [5, 2, 0, 6, 10, 14]} +{"sent_id": [5, 2, 3, 10, 4, 13]} +{"sent_id": [8, 10, 9, 12, 13, 22]} +{"sent_id": [11, 3, 1, 5, 0, 2]} +{"sent_id": [2, 9, 0, 6, 5, 3]} +{"sent_id": [3, 2, 4, 7, 1, 0]} +{"sent_id": [7, 5, 4, 18, 8, 3]} +{"sent_id": [3, 5, 0, 2, 1, 9]} +{"sent_id": [4, 0, 3, 1, 18, 2]} +{"sent_id": [2, 3, 0, 17, 4, 7]} +{"sent_id": [1, 2, 13, 4, 0, 15]} +{"sent_id": [15, 3, 1, 4, 2, 0]} +{"sent_id": [1, 7, 0, 12, 8, 2]} +{"sent_id": [3, 2, 4, 1, 11, 12]} +{"sent_id": [6, 9, 1, 2, 3, 10]} +{"sent_id": [1, 4, 3, 11, 2, 10]} +{"sent_id": [4, 1, 14, 3, 0, 2]} +{"sent_id": [10, 3, 1, 5, 2, 11]} +{"sent_id": [2, 0, 1, 7, 4, 8]} +{"sent_id": [2, 1, 4, 3, 10, 0]} +{"sent_id": [3, 10, 4, 1, 9, 7]} +{"sent_id": [1, 2, 3, 4, 10, 6]} +{"sent_id": [0, 8, 1, 7, 2, 11]} +{"sent_id": [8, 0, 1, 3, 6, 4]} +{"sent_id": [3, 1, 0, 4, 18, 14]} +{"sent_id": [6, 1, 15, 0, 8, 3]} +{"sent_id": [0, 3, 4, 6, 5, 11]} +{"sent_id": [1, 0, 2, 5, 4, 3]} +{"sent_id": [2, 0, 4, 3, 1, 6]} +{"sent_id": [5, 0, 1, 2, 18, 19]} +{"sent_id": [1, 8, 2, 3, 0, 5]} +{"sent_id": [0, 1, 4, 9, 6, 3]} +{"sent_id": [4, 5, 1, 10, 0, 2]} +{"sent_id": [1, 0, 3, 5, 4, 2]} +{"sent_id": [2, 10, 8, 1, 4, 6]} +{"sent_id": [3, 4, 0, 8, 1, 5]} +{"sent_id": [0, 3, 2, 7, 4, 1]} +{"sent_id": [5, 9, 15, 14, 13, 0]} +{"sent_id": [6, 0, 1, 12, 8, 11]} +{"sent_id": [0, 8, 4, 2, 5, 1]} +{"sent_id": [2, 3, 4, 7, 8, 1]} +{"sent_id": [4, 1, 5, 0, 2, 6]} +{"sent_id": [2, 1, 3, 9, 0, 5]} +{"sent_id": [1, 3, 2, 4, 6, 10]} +{"sent_id": [0, 3, 6, 1, 2, 8]} +{"sent_id": [8, 1, 0, 9, 13, 2]} +{"sent_id": [13, 1, 4, 8, 15, 14]} +{"sent_id": [0, 2, 4, 3, 6, 5]} +{"sent_id": [5, 1, 6, 2, 4, 10]} +{"sent_id": [2, 11, 1, 5, 0, 4]} +{"sent_id": [3, 2, 4, 6, 10, 7]} +{"sent_id": [0, 1, 2, 8, 9, 3]} +{"sent_id": [2, 1, 3, 5, 11, 0]} +{"sent_id": [1, 4, 5, 11, 3, 2]} +{"sent_id": [0, 3, 4, 9, 2, 8]} +{"sent_id": [2, 3, 4, 6, 5, 15]} +{"sent_id": [2, 0, 18, 7, 1, 5]} +{"sent_id": [3, 10, 11, 2, 5, 7]} +{"sent_id": [1, 0, 7, 6, 3, 2]} +{"sent_id": [5, 1, 4, 0, 2, 18]} +{"sent_id": [1, 5, 4, 0, 10, 2]} +{"sent_id": [3, 12, 8, 2, 4, 0]} +{"sent_id": [3, 1, 0, 4, 9, 2]} +{"sent_id": [2, 5, 4, 0, 9, 7]} +{"sent_id": [4, 8, 5, 6, 2, 3]} +{"sent_id": [0, 3, 4, 6, 5, 12]} +{"sent_id": [0, 1, 2, 4, 5, 6]} +{"sent_id": [1, 2, 7, 0, 8, 3]} +{"sent_id": [4, 1, 2, 0, 3, 5]} +{"sent_id": [2, 6, 11, 12, 7, 5]} +{"sent_id": [1, 2, 5, 3, 6, 4]} +{"sent_id": [3, 1, 0, 2, 6, 16]} +{"sent_id": [3, 8, 1, 0, 15, 5]} +{"sent_id": [1, 2, 3, 8, 0, 10]} +{"sent_id": [1, 9, 4, 10, 0, 2]} +{"sent_id": [1, 9, 5, 0, 6, 12]} +{"sent_id": [2, 5, 3, 4, 6, 0]} +{"sent_id": [4, 1, 2, 3, 8, 6]} +{"sent_id": [8, 3, 1, 4, 20, 16]} +{"sent_id": [1, 4, 2, 11, 3, 5]} +{"sent_id": [3, 5, 2, 1, 8, 19]} +{"sent_id": [3, 4, 1, 5, 10, 15]} +{"sent_id": [0, 3, 13, 2, 4, 1]} +{"sent_id": [4, 2, 9, 1, 13, 5]} +{"sent_id": [1, 0, 5, 10, 2, 6]} +{"sent_id": [1, 2, 0, 5, 10, 3]} +{"sent_id": [4, 1, 13, 15, 3, 0]} +{"sent_id": [6, 9, 4, 2, 0, 1]} +{"sent_id": [3, 2, 10, 4, 9, 0]} +{"sent_id": [0, 3, 12, 14, 1, 7]} +{"sent_id": [1, 13, 3, 0, 14, 6]} +{"sent_id": [1, 11, 6, 4, 5, 7]} +{"sent_id": [2, 3, 0, 5, 1, 10]} +{"sent_id": [3, 4, 2, 1, 0, 6]} +{"sent_id": [1, 2, 4, 5, 9, 8]} +{"sent_id": [2, 9, 1, 3, 0, 4]} +{"sent_id": [3, 0, 4, 9, 1, 5]} +{"sent_id": [2, 7, 4, 12, 0, 1]} +{"sent_id": [4, 3, 1, 0, 8, 5]} +{"sent_id": [3, 9, 4, 0, 1, 2]} +{"sent_id": [3, 6, 14, 1, 2, 12]} +{"sent_id": [0, 17, 1, 2, 3, 18]} +{"sent_id": [2, 1, 10, 5, 4, 3]} +{"sent_id": [3, 6, 1, 13, 7, 11]} +{"sent_id": [6, 14, 15, 18, 17, 0]} +{"sent_id": [4, 0, 1, 16, 2, 5]} +{"sent_id": [2, 5, 0, 3, 1, 4]} +{"sent_id": [8, 7, 0, 1, 4, 9]} +{"sent_id": [2, 0, 3, 6, 4, 8]} +{"sent_id": [0, 1, 2, 9, 5, 4]} +{"sent_id": [2, 6, 5, 3, 1, 7]} +{"sent_id": [1, 4, 0, 11, 16, 2]} +{"sent_id": [3, 0, 13, 1, 2, 8]} +{"sent_id": [5, 0, 3, 4, 1, 6]} +{"sent_id": [3, 0, 4, 6, 11, 7]} +{"sent_id": [4, 13, 5, 3, 14, 12]} +{"sent_id": [2, 1, 0, 4, 8, 5]} +{"sent_id": [7, 0, 1, 6, 14, 12]} +{"sent_id": [2, 4, 14, 0, 6, 5]} +{"sent_id": [1, 3, 9, 8, 0, 13]} +{"sent_id": [1, 3, 0, 5, 4, 8]} +{"sent_id": [1, 2, 4, 7, 6, 3]} +{"sent_id": [4, 8, 13, 1, 2, 0]} +{"sent_id": [1, 8, 3, 10, 2, 4]} +{"sent_id": [1, 2, 6, 4, 0, 14]} +{"sent_id": [4, 2, 0, 7, 3, 1]} +{"sent_id": [2, 6, 8, 3, 9, 1]} +{"sent_id": [1, 3, 5, 0, 6, 2]} +{"sent_id": [3, 1, 0, 2, 5, 4]} +{"sent_id": [0, 10, 1, 4, 18, 3]} +{"sent_id": [4, 13, 1, 3, 2, 5]} +{"sent_id": [3, 4, 6, 1, 2, 5]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [7, 8, 5, 6, 15, 12]} +{"sent_id": [3, 4, 2, 5, 6, 9]} +{"sent_id": [4, 2, 5, 3, 0, 9]} +{"sent_id": [4, 13, 0, 2, 14, 3]} +{"sent_id": [4, 13, 1, 0, 25, 24]} +{"sent_id": [1, 3, 9, 2, 0, 8]} +{"sent_id": [2, 3, 0, 4, 12, 5]} +{"sent_id": [3, 6, 4, 5, 9, 7]} +{"sent_id": [1, 3, 9, 4, 2, 10]} +{"sent_id": [1, 3, 2, 10, 0, 12]} +{"sent_id": [1, 2, 3, 4, 5, 0]} +{"sent_id": [4, 1, 5, 2, 0, 10]} +{"sent_id": [3, 1, 12, 2, 4, 5]} +{"sent_id": [1, 9, 3, 8, 5, 0]} +{"sent_id": [2, 1, 3, 12, 6, 5]} +{"sent_id": [1, 0, 2, 3, 6, 5]} +{"sent_id": [9, 0, 4, 1, 8, 3]} +{"sent_id": [2, 1, 4, 5, 3, 7]} +{"sent_id": [3, 8, 7, 4, 1, 2]} +{"sent_id": [0, 1, 3, 2, 8, 4]} +{"sent_id": [7, 1, 2, 9, 5, 3]} +{"sent_id": [0, 3, 13, 1, 2, 4]} +{"sent_id": [1, 3, 2, 5, 6, 4]} +{"sent_id": [1, 2, 7, 0, 4, 3]} +{"sent_id": [2, 4, 0, 1, 6, 13]} +{"sent_id": [1, 3, 4, 0, 2, 13]} +{"sent_id": [2, 4, 8, 3, 14, 5]} +{"sent_id": [2, 0, 4, 3, 5, 1]} +{"sent_id": [2, 3, 10, 0, 1, 11]} +{"sent_id": [5, 1, 0, 12, 6, 13]} +{"sent_id": [1, 0, 4, 2, 3, 5]} +{"sent_id": [1, 3, 5, 10, 4, 0]} +{"sent_id": [3, 0, 8, 7, 2, 10]} +{"sent_id": [1, 2, 3, 6, 7, 4]} +{"sent_id": [3, 15, 0, 13, 2, 1]} +{"sent_id": [8, 6, 16, 20, 3, 1]} +{"sent_id": [7, 12, 13, 2, 8, 3]} +{"sent_id": [2, 0, 3, 4, 6, 5]} +{"sent_id": [2, 4, 1, 8, 3, 6]} +{"sent_id": [3, 1, 4, 2, 17, 0]} +{"sent_id": [3, 2, 1, 9, 0, 4]} +{"sent_id": [0, 12, 4, 8, 13, 14]} +{"sent_id": [12, 0, 3, 2, 1, 5]} +{"sent_id": [1, 4, 0, 3, 5, 2]} +{"sent_id": [3, 4, 1, 5, 0, 8]} +{"sent_id": [1, 2, 5, 6, 3, 0]} +{"sent_id": [4, 1, 16, 2, 0, 6]} +{"sent_id": [3, 4, 2, 9, 1, 8]} +{"sent_id": [2, 3, 1, 7, 0, 5]} +{"sent_id": [2, 4, 17, 5, 3, 0]} +{"sent_id": [1, 2, 0, 6, 11, 7]} +{"sent_id": [5, 0, 7, 1, 3, 6]} +{"sent_id": [1, 3, 2, 6, 4, 10]} +{"sent_id": [2, 4, 1, 7, 8, 3]} +{"sent_id": [3, 4, 10, 5, 6, 19]} +{"sent_id": [1, 2, 5, 6, 0, 7]} +{"sent_id": [20, 0, 6, 1, 4, 7]} +{"sent_id": [2, 0, 4, 3, 15, 6]} +{"sent_id": [6, 7, 16, 19, 12, 1]} +{"sent_id": [3, 4, 5, 13, 9, 8]} +{"sent_id": [2, 1, 6, 0, 9, 14]} +{"sent_id": [0, 5, 1, 8, 4, 9]} +{"sent_id": [1, 2, 4, 12, 5, 13]} +{"sent_id": [1, 5, 0, 6, 2, 3]} +{"sent_id": [0, 1, 4, 2, 6, 5]} +{"sent_id": [0, 8, 2, 12, 11, 6]} +{"sent_id": [0, 3, 8, 1, 11, 12]} +{"sent_id": [0, 7, 3, 12, 14, 2]} +{"sent_id": [2, 1, 3, 4, 8, 5]} +{"sent_id": [4, 1, 3, 2, 7, 8]} +{"sent_id": [3, 9, 8, 16, 2, 1]} +{"sent_id": [7, 1, 0, 6, 2, 4]} +{"sent_id": [1, 7, 15, 8, 0, 2]} +{"sent_id": [3, 4, 5, 1, 11, 6]} +{"sent_id": [2, 3, 4, 8, 5, 7]} +{"sent_id": [0, 1, 6, 2, 14, 19]} +{"sent_id": [4, 2, 5, 3, 11, 6]} +{"sent_id": [1, 2, 6, 5, 13, 4]} +{"sent_id": [0, 3, 4, 5, 12, 2]} +{"sent_id": [4, 1, 2, 11, 3, 7]} +{"sent_id": [7, 0, 2, 1, 4, 12]} +{"sent_id": [1, 2, 3, 0, 6, 4]} +{"sent_id": [1, 11, 3, 5, 2, 0]} +{"sent_id": [2, 0, 1, 4, 10, 11]} +{"sent_id": [1, 2, 14, 4, 15, 6]} +{"sent_id": [15, 0, 1, 3, 4, 13]} +{"sent_id": [1, 2, 15, 6, 0, 7]} +{"sent_id": [2, 3, 1, 5, 6, 7]} +{"sent_id": [0, 2, 5, 7, 1, 4]} +{"sent_id": [10, 9, 0, 2, 16, 1]} +{"sent_id": [1, 7, 0, 14, 6, 5]} +{"sent_id": [3, 10, 2, 1, 14, 4]} +{"sent_id": [3, 1, 4, 5, 2, 0]} +{"sent_id": [0, 3, 9, 2, 6, 5]} +{"sent_id": [1, 4, 5, 3, 9, 0]} +{"sent_id": [13, 4, 7, 2, 16, 8]} +{"sent_id": [1, 2, 4, 5, 3, 0]} +{"sent_id": [3, 5, 10, 4, 7, 2]} +{"sent_id": [1, 2, 0, 5, 6, 4]} +{"sent_id": [3, 10, 1, 2, 6, 0]} +{"sent_id": [8, 2, 3, 9, 12, 16]} +{"sent_id": [1, 12, 3, 2, 5, 4]} +{"sent_id": [2, 3, 1, 5, 6, 0]} +{"sent_id": [2, 3, 0, 15, 4, 19]} +{"sent_id": [3, 4, 0, 1, 2, 19]} +{"sent_id": [2, 7, 1, 3, 4, 0]} +{"sent_id": [16, 0, 2, 13, 14, 1]} +{"sent_id": [1, 0, 4, 10, 5, 13]} +{"sent_id": [1, 3, 2, 6, 14, 0]} +{"sent_id": [3, 4, 2, 6, 1, 5]} +{"sent_id": [1, 3, 13, 2, 5, 0]} +{"sent_id": [1, 2, 10, 0, 8, 6]} +{"sent_id": [2, 3, 9, 1, 4, 13]} +{"sent_id": [4, 0, 2, 15, 1, 6]} +{"sent_id": [2, 0, 1, 3, 4, 8]} +{"sent_id": [3, 0, 4, 19, 5, 18]} +{"sent_id": [9, 10, 4, 1, 2, 3]} +{"sent_id": [2, 3, 5, 0, 4, 9]} +{"sent_id": [1, 2, 3, 7, 8, 4]} +{"sent_id": [1, 5, 0, 11, 2, 7]} +{"sent_id": [3, 1, 0, 2, 9, 13]} +{"sent_id": [1, 4, 0, 2, 3, 6]} +{"sent_id": [1, 0, 8, 2, 3, 4]} +{"sent_id": [1, 3, 2, 17, 4, 0]} +{"sent_id": [3, 9, 2, 1, 0, 4]} +{"sent_id": [0, 3, 1, 4, 5, 18]} +{"sent_id": [2, 1, 3, 5, 4, 10]} +{"sent_id": [1, 2, 3, 13, 4, 7]} +{"sent_id": [2, 1, 13, 4, 3, 5]} +{"sent_id": [3, 2, 11, 8, 10, 1]} +{"sent_id": [7, 1, 8, 3, 0, 2]} +{"sent_id": [3, 2, 1, 4, 0, 7]} +{"sent_id": [4, 5, 1, 3, 21, 10]} +{"sent_id": [5, 3, 2, 6, 8, 9]} +{"sent_id": [1, 2, 3, 10, 4, 6]} +{"sent_id": [7, 8, 3, 1, 18, 5]} +{"sent_id": [8, 10, 3, 6, 2, 11]} +{"sent_id": [0, 3, 6, 7, 11, 2]} +{"sent_id": [1, 2, 3, 9, 6, 5]} +{"sent_id": [1, 2, 5, 8, 6, 4]} +{"sent_id": [2, 1, 0, 14, 15, 5]} +{"sent_id": [4, 0, 14, 1, 5, 15]} +{"sent_id": [4, 10, 3, 14, 12, 8]} +{"sent_id": [5, 0, 3, 9, 14, 1]} +{"sent_id": [6, 3, 10, 0, 5, 11]} +{"sent_id": [3, 2, 1, 4, 6, 0]} +{"sent_id": [3, 8, 0, 1, 4, 2]} +{"sent_id": [7, 1, 0, 4, 10, 15]} +{"sent_id": [1, 3, 2, 4, 14, 13]} +{"sent_id": [0, 1, 13, 7, 9, 10]} +{"sent_id": [0, 3, 2, 4, 1, 5]} +{"sent_id": [4, 3, 9, 12, 8, 7]} +{"sent_id": [2, 1, 4, 0, 5, 8]} +{"sent_id": [2, 1, 4, 0, 5, 7]} +{"sent_id": [1, 0, 6, 12, 21, 20]} +{"sent_id": [6, 0, 1, 3, 9, 22]} +{"sent_id": [1, 3, 16, 2, 0, 4]} +{"sent_id": [1, 5, 2, 6, 7, 14]} +{"sent_id": [8, 1, 0, 4, 9, 6]} +{"sent_id": [5, 13, 3, 8, 4, 12]} +{"sent_id": [2, 13, 1, 0, 7, 9]} +{"sent_id": [5, 1, 2, 14, 3, 13]} +{"sent_id": [0, 2, 5, 3, 1, 13]} +{"sent_id": [8, 1, 0, 10, 2, 3]} +{"sent_id": [6, 1, 4, 7, 21, 22]} +{"sent_id": [3, 4, 5, 9, 10, 2]} +{"sent_id": [0, 1, 3, 2, 4, 19]} +{"sent_id": [0, 2, 1, 3, 9, 4]} +{"sent_id": [9, 5, 2, 3, 0, 4]} +{"sent_id": [3, 1, 12, 4, 2, 9]} +{"sent_id": [12, 4, 3, 0, 13, 2]} +{"sent_id": [5, 13, 7, 3, 2, 10]} +{"sent_id": [2, 0, 3, 4, 9, 1]} +{"sent_id": [3, 4, 1, 0, 2, 6]} +{"sent_id": [3, 0, 4, 1, 2, 5]} +{"sent_id": [1, 2, 0, 8, 6, 14]} +{"sent_id": [1, 0, 11, 2, 4, 3]} +{"sent_id": [1, 0, 11, 2, 7, 8]} +{"sent_id": [0, 1, 2, 4, 10, 7]} +{"sent_id": [1, 4, 3, 7, 5, 2]} +{"sent_id": [2, 0, 3, 14, 4, 5]} +{"sent_id": [6, 5, 1, 0, 7, 11]} +{"sent_id": [0, 2, 4, 5, 3, 1]} +{"sent_id": [0, 2, 12, 1, 4, 11]} +{"sent_id": [3, 4, 0, 7, 8, 13]} +{"sent_id": [1, 3, 2, 4, 5, 10]} +{"sent_id": [1, 4, 2, 3, 11, 10]} +{"sent_id": [6, 3, 2, 0, 1, 7]} +{"sent_id": [3, 4, 5, 1, 7, 0]} +{"sent_id": [1, 10, 3, 2, 14, 0]} +{"sent_id": [3, 1, 11, 4, 0, 6]} +{"sent_id": [2, 1, 0, 7, 9, 6]} +{"sent_id": [1, 3, 2, 4, 11, 10]} +{"sent_id": [1, 2, 4, 11, 0, 15]} +{"sent_id": [1, 3, 4, 10, 2, 5]} +{"sent_id": [6, 3, 8, 1, 4, 2]} +{"sent_id": [2, 0, 3, 22, 17, 1]} +{"sent_id": [3, 0, 2, 9, 5, 10]} +{"sent_id": [3, 5, 1, 4, 0, 9]} +{"sent_id": [1, 2, 5, 11, 0, 3]} +{"sent_id": [1, 2, 4, 3, 10, 0]} +{"sent_id": [3, 1, 8, 2, 6, 0]} +{"sent_id": [1, 2, 4, 0, 8, 3]} +{"sent_id": [0, 3, 1, 2, 9, 13]} +{"sent_id": [1, 0, 3, 2, 16, 23]} +{"sent_id": [3, 2, 4, 9, 0, 1]} +{"sent_id": [3, 2, 0, 1, 5, 4]} +{"sent_id": [1, 0, 4, 2, 10, 3]} +{"sent_id": [4, 0, 2, 5, 1, 6]} +{"sent_id": [4, 3, 6, 5, 8, 9]} +{"sent_id": [0, 11, 3, 7, 2, 15]} +{"sent_id": [1, 0, 8, 4, 2, 5]} +{"sent_id": [5, 2, 3, 7, 6, 1]} +{"sent_id": [2, 1, 3, 0, 5, 6]} +{"sent_id": [1, 8, 2, 3, 12, 0]} +{"sent_id": [0, 13, 9, 11, 3, 5]} +{"sent_id": [2, 15, 17, 3, 5, 14]} +{"sent_id": [1, 5, 2, 4, 6, 7]} +{"sent_id": [0, 8, 1, 3, 5, 4]} +{"sent_id": [1, 0, 11, 2, 7, 8]} +{"sent_id": [0, 13, 2, 3, 5, 16]} +{"sent_id": [9, 4, 1, 10, 2, 12]} +{"sent_id": [0, 6, 1, 3, 2, 5]} +{"sent_id": [2, 1, 3, 8, 13, 5]} +{"sent_id": [0, 3, 1, 11, 14, 4]} +{"sent_id": [0, 2, 5, 1, 11, 3]} +{"sent_id": [1, 3, 2, 0, 5, 7]} +{"sent_id": [12, 1, 2, 0, 6, 4]} +{"sent_id": [4, 0, 1, 3, 2, 8]} +{"sent_id": [5, 0, 1, 3, 2, 14]} +{"sent_id": [1, 2, 8, 9, 3, 5]} +{"sent_id": [0, 4, 2, 1, 6, 7]} +{"sent_id": [7, 5, 4, 13, 6, 14]} +{"sent_id": [1, 6, 4, 5, 2, 0]} +{"sent_id": [1, 0, 3, 5, 2, 9]} +{"sent_id": [2, 3, 0, 4, 5, 8]} +{"sent_id": [1, 2, 7, 11, 5, 0]} +{"sent_id": [5, 12, 6, 1, 13, 7]} +{"sent_id": [3, 1, 11, 0, 12, 7]} +{"sent_id": [4, 6, 5, 2, 1, 14]} +{"sent_id": [1, 0, 3, 2, 10, 6]} +{"sent_id": [2, 1, 3, 7, 6, 0]} +{"sent_id": [0, 2, 3, 7, 6, 1]} +{"sent_id": [1, 2, 3, 8, 9, 0]} +{"sent_id": [1, 4, 2, 19, 0, 6]} +{"sent_id": [5, 6, 14, 10, 3, 13]} +{"sent_id": [1, 2, 8, 3, 10, 0]} +{"sent_id": [3, 2, 1, 12, 13, 10]} +{"sent_id": [1, 2, 10, 3, 14, 4]} +{"sent_id": [2, 11, 1, 0, 7, 8]} +{"sent_id": [3, 1, 16, 2, 0, 17]} +{"sent_id": [1, 3, 6, 5, 2, 7]} +{"sent_id": [1, 4, 0, 3, 8, 7]} +{"sent_id": [1, 3, 2, 7, 4, 12]} +{"sent_id": [0, 2, 3, 8, 1, 4]} +{"sent_id": [10, 4, 3, 5, 11, 6]} +{"sent_id": [14, 3, 10, 21, 7, 0]} +{"sent_id": [4, 3, 1, 2, 6, 0]} +{"sent_id": [3, 4, 1, 2, 5, 9]} +{"sent_id": [12, 2, 4, 13, 10, 3]} +{"sent_id": [0, 6, 7, 11, 1, 2]} +{"sent_id": [1, 2, 3, 9, 0, 6]} +{"sent_id": [3, 1, 7, 2, 0, 13]} +{"sent_id": [2, 17, 1, 6, 15, 14]} +{"sent_id": [1, 3, 4, 0, 2, 10]} +{"sent_id": [18, 5, 12, 11, 14, 9]} +{"sent_id": [3, 2, 1, 4, 8, 6]} +{"sent_id": [11, 3, 4, 0, 2, 6]} +{"sent_id": [2, 4, 1, 9, 3, 8]} +{"sent_id": [2, 8, 9, 11, 3, 1]} +{"sent_id": [1, 3, 2, 7, 4, 0]} +{"sent_id": [3, 2, 12, 1, 0, 5]} +{"sent_id": [1, 0, 2, 5, 7, 4]} +{"sent_id": [1, 3, 8, 2, 5, 4]} +{"sent_id": [5, 7, 17, 0, 25, 8]} +{"sent_id": [1, 2, 8, 7, 3, 6]} +{"sent_id": [5, 1, 4, 2, 7, 9]} +{"sent_id": [1, 0, 3, 5, 4, 2]} +{"sent_id": [3, 1, 2, 6, 10, 5]} +{"sent_id": [1, 2, 5, 3, 4, 11]} +{"sent_id": [2, 4, 1, 5, 3, 6]} +{"sent_id": [1, 2, 3, 8, 5, 9]} +{"sent_id": [4, 3, 1, 2, 9, 0]} +{"sent_id": [2, 1, 3, 8, 14, 7]} +{"sent_id": [0, 7, 1, 2, 6, 4]} +{"sent_id": [3, 13, 4, 2, 14, 0]} +{"sent_id": [2, 9, 0, 3, 1, 4]} +{"sent_id": [3, 5, 0, 1, 9, 7]} +{"sent_id": [1, 2, 5, 8, 3, 4]} +{"sent_id": [2, 9, 5, 3, 6, 0]} +{"sent_id": [3, 5, 2, 0, 1, 13]} +{"sent_id": [1, 5, 3, 4, 12, 2]} +{"sent_id": [2, 1, 4, 7, 6, 9]} +{"sent_id": [3, 2, 5, 8, 9, 10]} +{"sent_id": [3, 6, 1, 2, 4, 0]} +{"sent_id": [0, 1, 10, 2, 9, 7]} +{"sent_id": [3, 1, 2, 13, 12, 16]} +{"sent_id": [2, 1, 5, 4, 6, 7]} +{"sent_id": [12, 5, 3, 7, 16, 1]} +{"sent_id": [3, 4, 1, 8, 2, 10]} +{"sent_id": [3, 2, 1, 11, 0, 7]} +{"sent_id": [0, 3, 11, 6, 15, 7]} +{"sent_id": [2, 0, 4, 21, 1, 3]} +{"sent_id": [0, 2, 6, 1, 11, 4]} +{"sent_id": [0, 25, 1, 12, 24, 5]} +{"sent_id": [3, 7, 2, 1, 0, 4]} +{"sent_id": [1, 3, 12, 14, 13, 8]} +{"sent_id": [1, 2, 0, 6, 10, 3]} +{"sent_id": [0, 1, 14, 15, 3, 4]} +{"sent_id": [3, 4, 5, 11, 10, 2]} +{"sent_id": [1, 2, 4, 0, 5, 10]} +{"sent_id": [0, 3, 1, 5, 8, 12]} +{"sent_id": [9, 3, 0, 1, 5, 2]} +{"sent_id": [3, 4, 11, 1, 2, 0]} +{"sent_id": [3, 1, 2, 6, 7, 0]} +{"sent_id": [2, 1, 0, 6, 8, 14]} +{"sent_id": [2, 4, 1, 6, 12, 3]} +{"sent_id": [3, 4, 5, 7, 2, 1]} +{"sent_id": [1, 5, 2, 7, 12, 6]} +{"sent_id": [2, 3, 15, 9, 19, 5]} +{"sent_id": [3, 0, 5, 9, 1, 2]} +{"sent_id": [2, 1, 4, 3, 15, 0]} +{"sent_id": [0, 9, 10, 6, 18, 7]} +{"sent_id": [1, 3, 2, 5, 9, 10]} +{"sent_id": [2, 3, 1, 17, 16, 5]} +{"sent_id": [8, 3, 4, 15, 1, 6]} +{"sent_id": [0, 5, 1, 9, 10, 6]} +{"sent_id": [2, 13, 5, 8, 1, 7]} +{"sent_id": [2, 0, 4, 10, 5, 3]} +{"sent_id": [2, 1, 3, 4, 12, 8]} +{"sent_id": [2, 1, 6, 5, 8, 7]} +{"sent_id": [2, 0, 6, 4, 3, 1]} +{"sent_id": [3, 15, 1, 0, 2, 8]} +{"sent_id": [3, 8, 14, 4, 9, 6]} +{"sent_id": [3, 8, 1, 9, 6, 7]} +{"sent_id": [1, 3, 8, 0, 14, 5]} +{"sent_id": [0, 4, 5, 2, 1, 10]} +{"sent_id": [8, 15, 5, 3, 1, 7]} +{"sent_id": [1, 0, 7, 6, 3, 11]} +{"sent_id": [4, 2, 7, 14, 1, 5]} +{"sent_id": [4, 0, 18, 3, 2, 6]} +{"sent_id": [2, 4, 0, 1, 8, 13]} +{"sent_id": [1, 3, 2, 6, 14, 7]} +{"sent_id": [0, 12, 6, 1, 7, 3]} +{"sent_id": [3, 4, 2, 5, 8, 7]} +{"sent_id": [2, 1, 7, 0, 12, 4]} +{"sent_id": [3, 0, 1, 2, 12, 14]} +{"sent_id": [1, 2, 3, 19, 0, 7]} +{"sent_id": [3, 7, 1, 8, 9, 11]} +{"sent_id": [0, 4, 3, 1, 9, 2]} +{"sent_id": [13, 2, 1, 0, 4, 15]} +{"sent_id": [0, 2, 1, 12, 4, 5]} +{"sent_id": [0, 3, 1, 2, 4, 7]} +{"sent_id": [4, 3, 13, 1, 8, 7]} +{"sent_id": [2, 10, 0, 3, 1, 11]} +{"sent_id": [1, 10, 4, 0, 7, 2]} +{"sent_id": [2, 7, 16, 17, 1, 13]} +{"sent_id": [1, 2, 7, 9, 3, 4]} +{"sent_id": [1, 2, 0, 14, 3, 10]} +{"sent_id": [1, 2, 7, 0, 4, 5]} +{"sent_id": [0, 1, 3, 4, 9, 2]} +{"sent_id": [1, 12, 2, 10, 5, 11]} +{"sent_id": [15, 5, 4, 13, 9, 2]} +{"sent_id": [4, 5, 0, 13, 11, 3]} +{"sent_id": [2, 1, 9, 0, 8, 5]} +{"sent_id": [0, 3, 1, 9, 2, 13]} +{"sent_id": [9, 7, 3, 1, 0, 8]} +{"sent_id": [3, 2, 8, 4, 1, 5]} +{"sent_id": [1, 2, 3, 7, 0, 8]} +{"sent_id": [12, 0, 13, 2, 3, 1]} +{"sent_id": [3, 4, 12, 2, 6, 1]} +{"sent_id": [1, 8, 5, 4, 0, 11]} +{"sent_id": [0, 4, 11, 8, 12, 9]} +{"sent_id": [1, 3, 4, 2, 8, 6]} +{"sent_id": [1, 0, 14, 2, 4, 3]} +{"sent_id": [4, 5, 6, 1, 8, 2]} +{"sent_id": [1, 11, 3, 7, 5, 15]} +{"sent_id": [3, 2, 1, 0, 9, 10]} +{"sent_id": [0, 1, 3, 7, 6, 5]} +{"sent_id": [1, 3, 5, 2, 4, 6]} +{"sent_id": [2, 1, 0, 8, 7, 16]} +{"sent_id": [15, 14, 9, 8, 12, 7]} +{"sent_id": [3, 2, 1, 6, 5, 16]} +{"sent_id": [1, 7, 4, 6, 2, 0]} +{"sent_id": [3, 5, 8, 1, 0, 6]} +{"sent_id": [3, 1, 0, 12, 2, 13]} +{"sent_id": [8, 10, 3, 0, 11, 9]} +{"sent_id": [2, 7, 8, 9, 1, 11]} +{"sent_id": [4, 15, 0, 1, 3, 2]} +{"sent_id": [1, 0, 8, 10, 12, 11]} +{"sent_id": [3, 1, 0, 2, 7, 5]} +{"sent_id": [3, 4, 2, 5, 7, 8]} +{"sent_id": [1, 7, 4, 3, 2, 5]} +{"sent_id": [0, 4, 3, 2, 5, 18]} +{"sent_id": [1, 2, 3, 6, 17, 5]} +{"sent_id": [2, 0, 3, 1, 4, 5]} +{"sent_id": [0, 1, 3, 4, 7, 15]} +{"sent_id": [4, 8, 2, 3, 5, 1]} +{"sent_id": [2, 0, 3, 5, 4, 13]} +{"sent_id": [12, 0, 1, 3, 6, 2]} +{"sent_id": [2, 0, 7, 8, 10, 3]} +{"sent_id": [4, 1, 2, 5, 9, 6]} +{"sent_id": [3, 16, 0, 5, 4, 7]} +{"sent_id": [1, 2, 0, 6, 9, 4]} +{"sent_id": [4, 5, 6, 7, 3, 15]} +{"sent_id": [4, 0, 1, 8, 6, 2]} +{"sent_id": [3, 2, 13, 12, 5, 1]} +{"sent_id": [0, 3, 11, 8, 4, 9]} +{"sent_id": [1, 2, 16, 11, 7, 0]} +{"sent_id": [7, 1, 4, 0, 2, 13]} +{"sent_id": [3, 7, 1, 0, 2, 5]} +{"sent_id": [1, 3, 2, 14, 4, 0]} +{"sent_id": [1, 5, 2, 6, 10, 13]} +{"sent_id": [3, 0, 4, 9, 1, 13]} +{"sent_id": [2, 1, 5, 8, 7, 6]} +{"sent_id": [3, 0, 8, 4, 5, 9]} +{"sent_id": [5, 7, 8, 13, 11, 6]} +{"sent_id": [2, 1, 4, 13, 5, 0]} +{"sent_id": [5, 3, 0, 2, 13, 14]} +{"sent_id": [1, 2, 16, 3, 13, 5]} +{"sent_id": [1, 2, 3, 12, 0, 6]} +{"sent_id": [0, 1, 2, 8, 10, 9]} +{"sent_id": [2, 7, 1, 6, 8, 5]} +{"sent_id": [1, 5, 4, 3, 13, 6]} +{"sent_id": [0, 4, 14, 5, 2, 15]} +{"sent_id": [1, 2, 4, 3, 6, 13]} +{"sent_id": [2, 1, 6, 5, 7, 0]} +{"sent_id": [2, 1, 5, 10, 4, 3]} +{"sent_id": [0, 3, 1, 2, 9, 8]} +{"sent_id": [4, 16, 2, 1, 13, 3]} +{"sent_id": [1, 0, 2, 15, 4, 6]} +{"sent_id": [4, 1, 2, 5, 0, 9]} +{"sent_id": [0, 9, 1, 2, 10, 13]} +{"sent_id": [6, 2, 14, 12, 7, 11]} +{"sent_id": [1, 0, 2, 6, 5, 9]} +{"sent_id": [2, 4, 3, 7, 1, 8]} +{"sent_id": [3, 2, 4, 0, 1, 9]} +{"sent_id": [8, 2, 4, 3, 5, 0]} +{"sent_id": [2, 0, 10, 3, 1, 4]} +{"sent_id": [3, 2, 5, 7, 6, 19]} +{"sent_id": [0, 1, 8, 3, 11, 7]} +{"sent_id": [5, 2, 1, 6, 4, 8]} +{"sent_id": [1, 2, 0, 4, 3, 11]} +{"sent_id": [3, 2, 9, 11, 5, 7]} +{"sent_id": [2, 1, 0, 7, 4, 3]} +{"sent_id": [1, 4, 14, 0, 3, 10]} +{"sent_id": [12, 2, 0, 9, 1, 6]} +{"sent_id": [2, 3, 5, 15, 1, 14]} +{"sent_id": [0, 5, 10, 1, 2, 6]} +{"sent_id": [1, 11, 0, 3, 2, 10]} +{"sent_id": [2, 6, 4, 5, 3, 12]} +{"sent_id": [1, 3, 4, 12, 2, 5]} +{"sent_id": [5, 2, 4, 1, 3, 17]} +{"sent_id": [3, 1, 2, 0, 5, 11]} +{"sent_id": [1, 0, 7, 6, 5, 2]} +{"sent_id": [3, 4, 1, 0, 5, 2]} +{"sent_id": [18, 2, 3, 5, 10, 6]} +{"sent_id": [5, 2, 1, 4, 3, 0]} +{"sent_id": [1, 2, 5, 13, 10, 11]} +{"sent_id": [2, 4, 1, 6, 9, 3]} +{"sent_id": [1, 2, 9, 7, 8, 5]} +{"sent_id": [2, 1, 5, 6, 4, 11]} +{"sent_id": [4, 5, 1, 7, 2, 3]} +{"sent_id": [3, 1, 5, 0, 4, 9]} +{"sent_id": [1, 2, 0, 3, 9, 15]} +{"sent_id": [2, 5, 3, 4, 0, 1]} +{"sent_id": [6, 1, 12, 2, 8, 7]} +{"sent_id": [5, 6, 0, 1, 3, 4]} +{"sent_id": [0, 2, 1, 4, 10, 3]} +{"sent_id": [4, 2, 3, 5, 1, 6]} +{"sent_id": [3, 1, 0, 2, 8, 14]} +{"sent_id": [1, 2, 0, 9, 3, 8]} +{"sent_id": [0, 2, 3, 4, 7, 10]} +{"sent_id": [2, 3, 6, 0, 1, 9]} +{"sent_id": [1, 2, 3, 10, 7, 6]} +{"sent_id": [5, 4, 14, 6, 1, 15]} +{"sent_id": [3, 1, 2, 11, 5, 14]} +{"sent_id": [3, 2, 1, 4, 6, 5]} +{"sent_id": [0, 2, 1, 4, 3]} +{"sent_id": [1, 5, 4, 11, 2, 3]} +{"sent_id": [15, 4, 2, 3, 7, 5]} +{"sent_id": [1, 3, 2, 4, 6, 5]} +{"sent_id": [2, 3, 6, 16, 5, 18]} +{"sent_id": [5, 4, 15, 1, 10, 0]} +{"sent_id": [6, 19, 2, 3, 8, 4]} +{"sent_id": [4, 0, 1, 3, 2, 5]} +{"sent_id": [3, 1, 16, 2, 10, 15]} +{"sent_id": [3, 1, 2, 13, 4, 11]} +{"sent_id": [5, 1, 6, 7, 12, 2]} +{"sent_id": [1, 3, 10, 13, 17, 2]} +{"sent_id": [4, 2, 3, 11, 0, 1]} +{"sent_id": [3, 2, 6, 1, 0, 5]} +{"sent_id": [4, 3, 2, 0, 1, 13]} +{"sent_id": [0, 1, 3, 4, 2, 8]} +{"sent_id": [8, 1, 9, 11, 0, 4]} +{"sent_id": [0, 2, 16, 10, 15, 7]} +{"sent_id": [3, 1, 11, 2, 4, 0]} +{"sent_id": [2, 3, 17, 11, 1, 6]} +{"sent_id": [3, 1, 2, 5, 8, 4]} +{"sent_id": [4, 2, 16, 0, 9, 1]} +{"sent_id": [0, 4, 1, 9, 15, 5]} +{"sent_id": [4, 10, 1, 0, 7, 5]} +{"sent_id": [3, 2, 4, 1, 0, 5]} +{"sent_id": [1, 4, 0, 3, 10, 2]} +{"sent_id": [4, 0, 1, 2, 5, 11]} +{"sent_id": [4, 2, 3, 1, 8, 7]} +{"sent_id": [5, 4, 8, 3, 11, 7]} +{"sent_id": [3, 4, 0, 5, 1, 2]} +{"sent_id": [0, 3, 2, 11, 5, 8]} +{"sent_id": [1, 2, 3, 6, 5, 7]} +{"sent_id": [1, 2, 5, 8, 6, 0]} +{"sent_id": [2, 9, 1, 6, 3, 5]} +{"sent_id": [7, 8, 5, 14, 13, 4]} +{"sent_id": [3, 9, 2, 1, 16, 10]} +{"sent_id": [4, 2, 5, 6, 10, 8]} +{"sent_id": [5, 3, 2, 1, 6, 7]} +{"sent_id": [3, 4, 1, 0, 11, 12]} +{"sent_id": [0, 3, 1, 10, 2, 4]} +{"sent_id": [2, 1, 5, 13, 6, 7]} +{"sent_id": [1, 2, 5, 4, 13, 0]} +{"sent_id": [1, 4, 0, 5, 2, 8]} +{"sent_id": [1, 2, 5, 6, 7, 8]} +{"sent_id": [3, 4, 13, 2, 1, 11]} +{"sent_id": [0, 3, 1, 10, 4, 8]} +{"sent_id": [2, 1, 0, 3, 12, 18]} +{"sent_id": [0, 2, 1, 3, 5, 4]} +{"sent_id": [1, 3, 2, 6, 4, 5]} +{"sent_id": [0, 1, 10, 7, 12, 3]} +{"sent_id": [1, 2, 13, 0, 14, 5]} +{"sent_id": [5, 7, 2, 4, 1, 17]} +{"sent_id": [1, 0, 2, 8, 6, 10]} +{"sent_id": [2, 4, 3, 1, 9, 6]} +{"sent_id": [0, 1, 2, 4, 5, 14]} +{"sent_id": [3, 4, 0, 16, 1, 5]} +{"sent_id": [1, 2, 5, 8, 15, 7]} +{"sent_id": [6, 8, 7, 9, 19, 16]} +{"sent_id": [1, 3, 4, 13, 11, 5]} +{"sent_id": [4, 6, 5, 17, 1, 18]} +{"sent_id": [2, 13, 3, 14, 0, 4]} +{"sent_id": [1, 2, 0, 5, 15, 14]} +{"sent_id": [2, 3, 1, 6, 12, 0]} +{"sent_id": [11, 2, 20, 22, 18, 21]} +{"sent_id": [2, 3, 8, 1, 4, 7]} +{"sent_id": [0, 1, 14, 6, 2, 10]} +{"sent_id": [0, 1, 16, 4, 5, 3]} +{"sent_id": [5, 4, 0, 7, 1, 2]} +{"sent_id": [0, 1, 16, 2, 4, 15]} +{"sent_id": [4, 5, 2, 3, 1, 12]} +{"sent_id": [7, 10, 6, 5, 3, 4]} +{"sent_id": [3, 5, 6, 18, 13, 4]} +{"sent_id": [0, 2, 9, 1, 4, 3]} +{"sent_id": [1, 12, 2, 13, 0, 7]} +{"sent_id": [3, 2, 0, 1, 12, 9]} +{"sent_id": [1, 11, 3, 4, 2, 9]} +{"sent_id": [9, 1, 2, 0, 15, 6]} +{"sent_id": [8, 7, 1, 6, 2, 4]} +{"sent_id": [3, 10, 9, 1, 4, 2]} +{"sent_id": [1, 2, 6, 3, 4, 5]} +{"sent_id": [1, 0, 5, 4, 8, 2]} +{"sent_id": [3, 0, 1, 22, 6, 2]} +{"sent_id": [3, 12, 10, 19, 5, 13]} +{"sent_id": [4, 6, 15, 12, 16, 0]} +{"sent_id": [3, 5, 4, 8, 9, 1]} +{"sent_id": [3, 1, 4, 10, 2, 6]} +{"sent_id": [1, 2, 3, 9, 4, 8]} +{"sent_id": [3, 1, 2, 5, 14, 0]} +{"sent_id": [0, 3, 11, 5, 2, 10]} +{"sent_id": [0, 2, 3, 5, 4, 13]} +{"sent_id": [6, 0, 5, 2, 3, 10]} +{"sent_id": [6, 2, 1, 5, 16, 0]} +{"sent_id": [0, 5, 1, 15, 8, 3]} +{"sent_id": [1, 2, 0, 4, 10, 8]} +{"sent_id": [2, 9, 8, 4, 10, 5]} +{"sent_id": [3, 1, 2, 6, 10, 8]} +{"sent_id": [1, 3, 6, 0, 4, 2]} +{"sent_id": [4, 0, 2, 8, 9, 3]} +{"sent_id": [3, 0, 9, 14, 2, 4]} +{"sent_id": [14, 12, 11, 2, 8, 13]} +{"sent_id": [6, 1, 8, 7, 21, 13]} +{"sent_id": [0, 4, 3, 5, 1, 13]} +{"sent_id": [0, 1, 2]} +{"sent_id": [1, 14, 13, 0, 2, 3]} +{"sent_id": [5, 4, 3, 1, 0, 11]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [13, 6, 4, 2, 1, 0]} +{"sent_id": [1, 2, 10, 3, 0, 4]} +{"sent_id": [1, 4, 2, 3, 8, 12]} +{"sent_id": [2, 1, 4, 12, 3, 10]} +{"sent_id": [1, 3, 8, 2, 10, 0]} +{"sent_id": [0, 8, 2, 16, 12, 4]} +{"sent_id": [4, 1, 13, 3, 2, 9]} +{"sent_id": [3, 0, 1, 7, 5, 6]} +{"sent_id": [3, 1, 0, 8, 2, 9]} +{"sent_id": [1, 5, 0, 2, 4, 13]} +{"sent_id": [3, 11, 1, 12, 0, 5]} +{"sent_id": [6, 0, 2, 1, 5, 3]} +{"sent_id": [8, 10, 11, 15, 17, 16]} +{"sent_id": [1, 2, 4, 8, 0, 3]} +{"sent_id": [3, 2, 1, 0, 10, 12]} +{"sent_id": [4, 1, 0, 6, 12, 2]} +{"sent_id": [3, 11, 10, 1, 2, 0]} +{"sent_id": [3, 6, 1, 2, 11, 9]} +{"sent_id": [7, 3, 6, 2, 10, 4]} +{"sent_id": [3, 0, 2, 4, 8, 1]} +{"sent_id": [8, 7, 3, 12, 2, 9]} +{"sent_id": [2, 4, 8, 0, 5, 12]} +{"sent_id": [3, 1, 2, 8, 0, 6]} +{"sent_id": [1, 14, 2, 3, 4, 5]} +{"sent_id": [1, 3, 2, 8, 0, 7]} +{"sent_id": [1, 3, 5, 14, 2, 0]} +{"sent_id": [3, 0, 5, 7, 4, 1]} +{"sent_id": [3, 1, 2, 4, 6, 9]} +{"sent_id": [1, 5, 3, 2, 6, 4]} +{"sent_id": [1, 2, 0, 3, 11, 4]} +{"sent_id": [3, 1, 0, 6, 2, 10]} +{"sent_id": [1, 2, 4, 16, 11, 0]} +{"sent_id": [3, 2, 1, 5, 4, 13]} +{"sent_id": [2, 12, 3, 4, 6, 1]} +{"sent_id": [2, 1, 3, 0, 11, 5]} +{"sent_id": [3, 0, 11, 1, 2, 8]} +{"sent_id": [6, 2, 1, 7, 4, 5]} +{"sent_id": [2, 7, 12, 8, 9, 6]} +{"sent_id": [1, 2, 4, 13, 8, 0]} +{"sent_id": [0, 3, 4, 2, 1, 6]} +{"sent_id": [2, 0, 1, 11, 4, 3]} +{"sent_id": [2, 5, 0, 1, 6, 7]} +{"sent_id": [5, 9, 15, 6, 11, 7]} +{"sent_id": [1, 4, 0, 2, 3, 7]} +{"sent_id": [3, 2, 6, 10, 9, 8]} +{"sent_id": [1, 7, 3, 0, 8, 2]} +{"sent_id": [1, 2, 5, 0, 3, 4]} +{"sent_id": [3, 2, 1, 4, 5, 10]} +{"sent_id": [3, 18, 9, 0, 8, 4]} +{"sent_id": [0, 4, 3, 5, 1, 2]} +{"sent_id": [2, 3, 1, 9, 5, 6]} +{"sent_id": [1, 5, 2, 6, 0, 7]} +{"sent_id": [17, 1, 0, 2, 3, 11]} +{"sent_id": [3, 2, 5, 1, 7, 0]} +{"sent_id": [3, 0, 1, 2, 5, 16]} +{"sent_id": [1, 5, 17, 2, 6, 7]} +{"sent_id": [6, 1, 7, 17, 13, 10]} +{"sent_id": [3, 4, 7, 2, 1, 5]} +{"sent_id": [2, 0, 3, 4, 8, 1]} +{"sent_id": [1, 0, 4, 2, 3, 5]} +{"sent_id": [1, 2, 6, 4, 3, 7]} +{"sent_id": [0, 1, 2, 18, 12, 3]} +{"sent_id": [13, 2, 4, 7, 3, 1]} +{"sent_id": [2, 1, 0, 3, 10, 8]} +{"sent_id": [3, 9, 5, 8, 4, 6]} +{"sent_id": [2, 5, 3, 14, 15, 8]} +{"sent_id": [2, 1, 4, 3, 0, 9]} +{"sent_id": [1, 3, 9, 4, 2, 17]} +{"sent_id": [3, 5, 2, 4, 0, 6]} +{"sent_id": [0, 3, 2, 1, 8, 4]} +{"sent_id": [1, 2, 0, 14, 12, 4]} +{"sent_id": [2, 1, 7, 3, 10, 8]} +{"sent_id": [1, 6, 4, 2, 3, 13]} +{"sent_id": [2, 7, 5, 1, 6, 0]} +{"sent_id": [1, 6, 3, 4, 5, 2]} +{"sent_id": [2, 4, 1, 3, 5, 9]} +{"sent_id": [8, 6, 1, 5, 3, 2]} +{"sent_id": [1, 2, 0, 9, 7, 8]} +{"sent_id": [3, 0, 7, 1, 2, 4]} +{"sent_id": [3, 16, 1, 8, 13, 4]} +{"sent_id": [1, 5, 3, 6, 2, 7]} +{"sent_id": [2, 1, 4, 8, 5, 7]} +{"sent_id": [0, 2, 6, 8, 13, 4]} +{"sent_id": [1, 0, 3, 2, 4, 5]} +{"sent_id": [0, 6, 3, 2, 4, 14]} +{"sent_id": [4, 3, 6, 2, 9, 8]} +{"sent_id": [13, 4, 1, 2, 7, 3]} +{"sent_id": [1, 5, 0, 4, 2, 3]} +{"sent_id": [17, 3, 0, 1, 2, 7]} +{"sent_id": [1, 0, 6, 16, 2, 15]} +{"sent_id": [4, 1, 2, 0, 5, 3]} +{"sent_id": [3, 19, 10, 6, 20, 13]} +{"sent_id": [1, 4, 2, 3, 5, 6]} +{"sent_id": [1, 0, 3, 19, 2, 10]} +{"sent_id": [9, 3, 1, 0, 4, 2]} +{"sent_id": [3, 2, 1, 4, 0, 7]} +{"sent_id": [1, 4, 3, 7, 0, 14]} +{"sent_id": [0, 1, 12, 2, 4, 5]} +{"sent_id": [1, 2, 7, 9, 3, 4]} +{"sent_id": [9, 4, 3, 8, 7, 10]} +{"sent_id": [2, 6, 4, 15, 1, 5]} +{"sent_id": [2, 1, 0, 16, 11, 15]} +{"sent_id": [1, 2, 12, 0, 9, 6]} +{"sent_id": [0, 2, 3, 5, 7, 19]} +{"sent_id": [7, 15, 6, 8, 0, 10]} +{"sent_id": [2, 0, 3, 10, 11, 5]} +{"sent_id": [1, 2, 4, 12, 6, 5]} +{"sent_id": [0, 1, 3, 2, 11, 8]} +{"sent_id": [3, 0, 5, 2, 9, 7]} +{"sent_id": [7, 8, 10, 0, 12, 3]} +{"sent_id": [1, 2, 4, 7, 5, 3]} +{"sent_id": [1, 3, 4, 2, 0, 14]} +{"sent_id": [3, 2, 1, 7, 0, 10]} +{"sent_id": [1, 2, 3, 13, 12, 14]} +{"sent_id": [10, 0, 11, 12, 6, 5]} +{"sent_id": [3, 0, 1, 14, 5, 2]} +{"sent_id": [3, 5, 9, 4, 7, 2]} +{"sent_id": [13, 1, 9, 3, 5, 2]} +{"sent_id": [6, 2, 1, 0, 12, 11]} +{"sent_id": [2, 4, 3, 0, 6, 9]} +{"sent_id": [2, 3, 4, 6, 8, 9]} +{"sent_id": [2, 3, 4, 5, 16, 8]} +{"sent_id": [1, 7, 6, 2, 0, 9]} +{"sent_id": [0, 1, 3, 2, 10, 5]} +{"sent_id": [1, 0, 2, 11, 12, 5]} +{"sent_id": [1, 2, 5, 10, 4, 6]} +{"sent_id": [4, 3, 1, 8, 18, 21]} +{"sent_id": [0, 2, 4, 3, 11, 8]} +{"sent_id": [4, 1, 9, 0, 2, 8]} +{"sent_id": [0, 17, 2, 6, 1, 13]} +{"sent_id": [0, 3, 5, 4, 7, 1]} +{"sent_id": [4, 10, 1, 3, 11, 5]} +{"sent_id": [2, 1, 11, 3, 9, 6]} +{"sent_id": [5, 3, 6, 1, 4, 10]} +{"sent_id": [7, 4, 10, 11, 3, 2]} +{"sent_id": [1, 4, 3, 0, 2, 16]} +{"sent_id": [3, 2, 1, 14, 4, 8]} +{"sent_id": [2, 1, 4, 14, 6, 10]} +{"sent_id": [0, 1, 4, 11, 2, 5]} +{"sent_id": [3, 4, 12, 2, 5, 9]} +{"sent_id": [4, 3, 6, 5, 16, 15]} +{"sent_id": [17, 3, 8, 9, 0, 16]} +{"sent_id": [0, 14, 2, 7, 3, 9]} +{"sent_id": [1, 5, 6, 3, 4, 17]} +{"sent_id": [3, 4, 2, 1, 5, 6]} +{"sent_id": [3, 15, 8, 9, 7, 10]} +{"sent_id": [2, 0, 1, 3, 8, 5]} +{"sent_id": [2, 0, 4, 6, 5, 1]} +{"sent_id": [2, 1, 4, 3, 17, 18]} +{"sent_id": [0, 4, 1, 5, 2, 6]} +{"sent_id": [2, 1, 3, 4, 12, 5]} +{"sent_id": [1, 7, 2, 0, 5, 16]} +{"sent_id": [4, 1, 3, 5, 2, 0]} +{"sent_id": [1, 2, 8, 15, 0, 3]} +{"sent_id": [3, 5, 4, 0, 1, 2]} +{"sent_id": [3, 2, 0, 4, 11, 8]} +{"sent_id": [5, 6, 1, 4, 2, 3]} +{"sent_id": [3, 1, 0, 2, 4, 16]} +{"sent_id": [4, 1, 2, 8, 5, 3]} +{"sent_id": [2, 1, 5, 7, 0, 3]} +{"sent_id": [2, 6, 16, 9, 0, 8]} +{"sent_id": [0, 9, 12, 1, 2, 8]} +{"sent_id": [1, 4, 2, 12, 5, 3]} +{"sent_id": [3, 8, 1, 2, 14, 5]} +{"sent_id": [2, 6, 5, 12, 4, 0]} +{"sent_id": [5, 3, 0, 4, 12, 1]} +{"sent_id": [2, 0, 3, 4, 6, 5]} +{"sent_id": [0, 8, 3, 4, 5, 1]} +{"sent_id": [5, 3, 10, 0, 6, 16]} +{"sent_id": [1, 10, 4, 5, 2, 9]} +{"sent_id": [2, 1, 0, 3, 5, 12]} +{"sent_id": [0, 1, 2, 6, 3, 4]} +{"sent_id": [1, 2, 5, 4, 0, 11]} +{"sent_id": [10, 5, 1, 4, 9, 0]} +{"sent_id": [0, 2, 8, 11, 7, 6]} +{"sent_id": [3, 11, 0, 1, 14, 4]} +{"sent_id": [3, 1, 5, 8, 2, 0]} +{"sent_id": [4, 3, 2, 5, 6, 10]} +{"sent_id": [2, 1, 5, 4, 3, 12]} +{"sent_id": [1, 3, 6, 2, 14, 13]} +{"sent_id": [3, 8, 2, 7, 4, 14]} +{"sent_id": [1, 7, 2, 0, 3, 11]} +{"sent_id": [0, 1, 9, 2, 3, 6]} +{"sent_id": [2, 3, 1, 9, 0, 4]} +{"sent_id": [2, 1, 4, 3, 12, 5]} +{"sent_id": [1, 5, 9, 2, 0, 3]} +{"sent_id": [2, 0, 5, 3, 1, 4]} +{"sent_id": [3, 1, 2, 0, 11, 13]} +{"sent_id": [2, 3, 1, 10, 9, 12]} +{"sent_id": [1, 4, 2, 9, 3, 11]} +{"sent_id": [0, 3, 6, 4, 2, 1]} +{"sent_id": [1, 0, 3, 7, 8, 5]} +{"sent_id": [1, 2, 9, 3, 18, 5]} +{"sent_id": [3, 15, 2, 11, 12, 4]} +{"sent_id": [0, 1, 3, 2, 4, 5]} +{"sent_id": [6, 1, 0, 7, 15, 14]} +{"sent_id": [0, 3, 5, 4, 2, 7]} +{"sent_id": [2, 5, 16, 3, 12, 11]} +{"sent_id": [5, 13, 11, 1, 7, 6]} +{"sent_id": [2, 1, 0, 11, 15, 8]} +{"sent_id": [1, 2, 3, 4, 11, 7]} +{"sent_id": [1, 2, 4, 3, 11, 6]} +{"sent_id": [1, 2, 0, 11, 8, 3]} +{"sent_id": [1, 2, 3, 14, 9, 0]} +{"sent_id": [3, 4, 1, 2, 5, 6]} +{"sent_id": [2, 1, 4, 3, 7, 6]} +{"sent_id": [5, 14, 4, 2, 11, 1]} +{"sent_id": [3, 2, 1, 5, 10, 6]} +{"sent_id": [0, 9, 1, 6, 7, 12]} +{"sent_id": [1, 2, 3, 5, 8, 4]} +{"sent_id": [3, 1, 2, 8, 9, 0]} +{"sent_id": [4, 1, 3, 5, 2, 7]} +{"sent_id": [1, 5, 2, 4, 0, 13]} +{"sent_id": [0, 2, 18, 5, 1, 6]} +{"sent_id": [1, 2, 0, 6, 4, 3]} +{"sent_id": [2, 0, 12, 3, 4, 9]} +{"sent_id": [2, 0, 3, 7, 4, 1]} +{"sent_id": [3, 4, 9, 8, 0, 2]} +{"sent_id": [1, 2, 3, 4, 9, 10]} +{"sent_id": [2, 4, 1, 6, 8, 10]} +{"sent_id": [0, 9, 2, 3, 4, 1]} +{"sent_id": [2, 1, 6, 0, 8, 14]} +{"sent_id": [1, 4, 5, 2, 0, 3]} +{"sent_id": [3, 0, 4, 8, 6, 2]} +{"sent_id": [2, 3, 11, 1, 5, 14]} +{"sent_id": [3, 0, 2, 4, 5, 6]} +{"sent_id": [3, 1, 0, 2, 4, 12]} +{"sent_id": [3, 2, 4, 14, 0, 1]} +{"sent_id": [1, 2, 0, 9, 8, 3]} +{"sent_id": [0, 1, 6, 11, 7, 9]} +{"sent_id": [3, 1, 4, 10, 2, 0]} +{"sent_id": [0, 1, 10, 3, 2, 11]} +{"sent_id": [2, 0, 3, 4, 7, 1]} +{"sent_id": [1, 3, 0, 4, 7, 6]} +{"sent_id": [0, 3, 4, 1, 11, 12]} +{"sent_id": [3, 1, 4, 2, 0, 13]} +{"sent_id": [2, 1, 5, 4, 7, 6]} +{"sent_id": [3, 2, 1, 5, 0, 6]} +{"sent_id": [2, 1, 4, 5, 3, 0]} +{"sent_id": [4, 3, 2, 5, 7, 11]} +{"sent_id": [0, 7, 2, 14, 19, 15]} +{"sent_id": [5, 9, 7, 6, 8, 13]} +{"sent_id": [2, 1, 3, 13, 7, 4]} +{"sent_id": [2, 12, 6, 3, 0, 1]} +{"sent_id": [3, 0, 12, 4, 1, 2]} +{"sent_id": [2, 6, 1, 5, 4, 7]} +{"sent_id": [2, 3, 6, 7, 4, 13]} +{"sent_id": [7, 8, 0, 6, 5, 1]} +{"sent_id": [3, 1, 7, 0, 2, 9]} +{"sent_id": [0, 1, 3, 2, 5, 8]} +{"sent_id": [7, 1, 3, 2, 0, 9]} +{"sent_id": [1, 2, 0, 8, 3, 6]} +{"sent_id": [4, 1, 18, 9, 14, 5]} +{"sent_id": [1, 3, 4, 2, 7, 15]} +{"sent_id": [14, 0, 4, 6, 1, 11]} +{"sent_id": [4, 0, 1, 11, 2, 3]} +{"sent_id": [1, 4, 2, 3, 5, 10]} +{"sent_id": [5, 1, 2, 0, 4, 3]} +{"sent_id": [4, 13, 10, 18, 3, 17]} +{"sent_id": [3, 0, 19, 1, 11, 2]} +{"sent_id": [1, 2, 7, 3, 6, 8]} +{"sent_id": [3, 4, 0, 2, 1, 12]} +{"sent_id": [1, 3, 4, 7, 2, 0]} +{"sent_id": [1, 3, 2, 8, 5, 6]} +{"sent_id": [0, 5, 3, 13, 4, 2]} +{"sent_id": [1, 2, 3, 7, 6, 10]} +{"sent_id": [8, 10, 4, 7, 2, 1]} +{"sent_id": [1, 2, 3, 0, 8, 6]} +{"sent_id": [0, 1, 2, 11, 8, 5]} +{"sent_id": [1, 2, 4, 0, 3, 7]} +{"sent_id": [1, 7, 3, 2, 4, 0]} +{"sent_id": [2, 0, 3, 5, 6, 1]} +{"sent_id": [3, 2, 5, 6, 10, 11]} +{"sent_id": [3, 2, 14, 7, 0, 15]} +{"sent_id": [0, 2, 6, 8, 5, 1]} +{"sent_id": [1, 0, 2, 3, 7, 4]} +{"sent_id": [4, 2, 6, 7, 9, 1]} +{"sent_id": [2, 11, 3, 7, 6, 4]} +{"sent_id": [3, 4, 14, 1, 13, 0]} +{"sent_id": [3, 6, 5, 2, 12, 9]} +{"sent_id": [1, 2, 4, 0, 3, 6]} +{"sent_id": [1, 4, 2, 11, 10, 6]} +{"sent_id": [0, 2, 3, 5, 4, 7]} +{"sent_id": [1, 0, 6, 3, 9, 2]} +{"sent_id": [4, 1, 8, 11, 7, 3]} +{"sent_id": [3, 1, 8, 0, 9, 2]} +{"sent_id": [0, 10, 11, 8, 9, 17]} +{"sent_id": [2, 1, 14, 5, 6, 3]} +{"sent_id": [2, 3, 1, 10, 0, 9]} +{"sent_id": [0, 4, 1, 10, 2, 5]} +{"sent_id": [4, 1, 5, 9, 8, 3]} +{"sent_id": [1, 5, 2, 3, 6, 0]} +{"sent_id": [0, 4, 3, 1, 2]} +{"sent_id": [0, 4, 5, 3, 1, 6]} +{"sent_id": [1, 2, 0, 13, 11, 12]} +{"sent_id": [1, 11, 6, 2, 4, 3]} +{"sent_id": [4, 11, 0, 3, 5, 2]} +{"sent_id": [2, 3, 0, 4, 7, 17]} +{"sent_id": [1, 2, 6, 7, 5, 9]} +{"sent_id": [1, 2, 3, 14, 4, 7]} +{"sent_id": [2, 9, 4, 0, 6, 10]} +{"sent_id": [2, 3, 7, 9, 14, 0]} +{"sent_id": [3, 1, 21, 2, 9, 0]} +{"sent_id": [15, 0, 1, 6, 5, 2]} +{"sent_id": [0, 5, 2, 8, 7, 6]} +{"sent_id": [2, 1, 4, 5, 3, 6]} +{"sent_id": [2, 1, 3, 4, 5, 7]} +{"sent_id": [0, 5, 1, 4, 3, 6]} +{"sent_id": [2, 3, 0, 4, 9, 5]} +{"sent_id": [3, 7, 18, 4, 2, 6]} +{"sent_id": [2, 4, 5, 0, 3, 6]} +{"sent_id": [3, 1, 12, 9, 10, 13]} +{"sent_id": [2, 4, 5, 1, 10, 9]} +{"sent_id": [0, 3, 2, 4, 1, 12]} +{"sent_id": [1, 2, 3, 11, 7, 12]} +{"sent_id": [12, 2, 1, 7, 6, 0]} +{"sent_id": [0, 2, 3, 1, 6, 4]} +{"sent_id": [1, 4, 2, 6, 0, 8]} +{"sent_id": [2, 1, 5, 6, 3, 0]} +{"sent_id": [1, 5, 4, 18, 6, 2]} +{"sent_id": [1, 2, 3, 4, 0, 5]} +{"sent_id": [1, 5, 6, 11, 2, 10]} +{"sent_id": [1, 8, 2, 7, 4, 6]} +{"sent_id": [2, 1, 16, 15, 3, 0]} +{"sent_id": [1, 2, 0, 7, 4, 11]} +{"sent_id": [0, 3, 11, 2, 9, 7]} +{"sent_id": [2, 3, 6, 9, 1, 16]} +{"sent_id": [2, 1, 4, 0, 3, 9]} +{"sent_id": [5, 9, 6, 3, 7, 8]} +{"sent_id": [1, 4, 2, 9, 0, 3]} +{"sent_id": [2, 3, 0, 6, 4, 7]} +{"sent_id": [3, 1, 10, 2, 4, 8]} +{"sent_id": [1, 2, 3, 5, 9, 4]} +{"sent_id": [13, 0, 6, 3, 5, 4]} +{"sent_id": [1, 2, 0, 4, 14, 9]} +{"sent_id": [1, 13, 2, 8, 0, 11]} +{"sent_id": [4, 12, 1, 5, 3, 0]} +{"sent_id": [2, 1, 5, 4, 15, 9]} +{"sent_id": [0, 3, 1, 5, 7, 2]} +{"sent_id": [2, 7, 17, 6, 8, 5]} +{"sent_id": [1, 2, 5, 14, 4, 3]} +{"sent_id": [3, 11, 4, 5, 2, 1]} +{"sent_id": [1, 2, 0, 7, 3, 8]} +{"sent_id": [4, 0, 1, 2, 10, 8]} +{"sent_id": [1, 4, 2, 0, 7, 3]} +{"sent_id": [1, 3, 5, 4, 10, 6]} +{"sent_id": [3, 1, 2, 0, 8, 11]} +{"sent_id": [5, 4, 6, 0, 3, 1]} +{"sent_id": [6, 0, 1, 13, 3, 2]} +{"sent_id": [19, 10, 21, 20, 3, 0]} +{"sent_id": [0, 3, 7, 10, 6, 5]} +{"sent_id": [9, 1, 2, 3, 0, 13]} +{"sent_id": [1, 0, 2, 4, 6, 9]} +{"sent_id": [0, 3, 4, 14, 2, 13]} +{"sent_id": [3, 0, 7, 1, 8, 6]} +{"sent_id": [2, 0, 3, 5, 4, 8]} +{"sent_id": [1, 5, 2, 4, 8, 0]} +{"sent_id": [3, 5, 17, 1, 6, 2]} +{"sent_id": [0, 3, 12, 1, 2, 4]} +{"sent_id": [4, 1, 0, 2, 11, 10]} +{"sent_id": [6, 3, 5, 4, 7, 2]} +{"sent_id": [0, 3, 1, 4, 12, 19]} +{"sent_id": [4, 0, 3, 21, 5, 2]} +{"sent_id": [2, 1, 3, 10, 9, 4]} +{"sent_id": [1, 2, 0, 7, 6, 5]} +{"sent_id": [1, 3, 2, 9, 0, 4]} +{"sent_id": [1, 2, 4, 3, 5, 7]} +{"sent_id": [2, 4, 14, 9, 8, 3]} +{"sent_id": [3, 1, 4, 2, 6, 7]} +{"sent_id": [1, 3, 4, 0, 2, 7]} +{"sent_id": [2, 0, 4, 3, 5, 6]} +{"sent_id": [1, 0, 3, 6, 10, 2]} +{"sent_id": [0, 17, 2, 1, 18, 3]} +{"sent_id": [4, 6, 2, 3, 1, 11]} +{"sent_id": [4, 3, 1, 2, 5, 7]} +{"sent_id": [7, 8, 6, 5, 3, 4]} +{"sent_id": [9, 1, 3, 0, 5, 2]} +{"sent_id": [1, 2, 0, 7, 4, 3]} +{"sent_id": [1, 2, 4, 7, 8, 10]} +{"sent_id": [4, 2, 1, 8, 0, 5]} +{"sent_id": [10, 3, 1, 0, 2, 4]} +{"sent_id": [4, 5, 2, 3, 7, 8]} +{"sent_id": [1, 2, 7, 3, 5, 0]} +{"sent_id": [1, 8, 9, 6, 4, 5]} +{"sent_id": [8, 2, 1, 4, 9, 14]} +{"sent_id": [3, 9, 2, 1, 0, 4]} +{"sent_id": [9, 3, 8, 4, 1, 2]} +{"sent_id": [0, 2, 3, 4, 14, 1]} +{"sent_id": [2, 3, 4, 11, 0, 1]} +{"sent_id": [9, 11, 2, 3, 6, 7]} +{"sent_id": [0, 4, 10, 2, 3, 1]} +{"sent_id": [1, 2, 8, 4, 3, 0]} +{"sent_id": [3, 2, 1, 5, 6, 7]} +{"sent_id": [2, 1, 3, 8, 0, 13]} +{"sent_id": [2, 0, 1, 11, 8, 18]} +{"sent_id": [1, 2, 3, 5, 6, 4]} +{"sent_id": [2, 3, 0, 1, 5, 7]} +{"sent_id": [6, 5, 10, 1, 7, 0]} +{"sent_id": [3, 2, 1, 11, 4, 8]} +{"sent_id": [4, 1, 3, 14, 9, 5]} +{"sent_id": [0, 2, 5, 4, 3, 8]} +{"sent_id": [1, 3, 0, 5, 2, 4]} +{"sent_id": [3, 2, 0, 1, 7, 8]} +{"sent_id": [1, 5, 2, 8, 3, 4]} +{"sent_id": [3, 4, 9, 12, 11, 10]} +{"sent_id": [5, 0, 10, 1, 2, 8]} +{"sent_id": [0, 1, 3, 4, 2, 12]} +{"sent_id": [4, 10, 3, 9, 6, 2]} +{"sent_id": [4, 5, 0, 6, 8, 2]} +{"sent_id": [1, 2, 4, 5, 6, 0]} +{"sent_id": [3, 9, 2, 1, 0, 5]} +{"sent_id": [1, 9, 6, 2, 8, 10]} +{"sent_id": [4, 3, 2, 7, 10, 9]} +{"sent_id": [0, 2, 3, 5, 4, 1]} +{"sent_id": [1, 3, 2, 5, 12, 6]} +{"sent_id": [1, 2, 3, 4, 0, 7]} +{"sent_id": [5, 0, 8, 1, 11, 2]} +{"sent_id": [2, 3, 5, 6, 13, 16]} +{"sent_id": [1, 6, 0, 2, 4, 5]} +{"sent_id": [6, 23, 3, 9, 4, 8]} +{"sent_id": [1, 2, 5, 3, 6, 0]} +{"sent_id": [1, 2, 0, 6, 18, 3]} +{"sent_id": [1, 13, 0, 2, 15, 7]} +{"sent_id": [10, 2, 1, 0, 14, 16]} +{"sent_id": [2, 3, 4, 5, 0, 1]} +{"sent_id": [8, 0, 13, 4, 9, 5]} +{"sent_id": [1, 2, 0, 13, 4, 7]} +{"sent_id": [1, 2, 13, 3, 11, 0]} +{"sent_id": [3, 1, 4, 7, 5, 11]} +{"sent_id": [4, 8, 6, 3, 18, 5]} +{"sent_id": [6, 15, 1, 7, 0, 2]} +{"sent_id": [7, 8, 1, 2, 5, 0]} +{"sent_id": [2, 1, 4, 11, 6, 10]} +{"sent_id": [2, 1, 5, 6, 9, 15]} +{"sent_id": [2, 1, 8, 6, 10, 3]} +{"sent_id": [1, 2, 6, 4, 10, 5]} +{"sent_id": [4, 1, 7, 6, 0, 8]} +{"sent_id": [3, 4, 5, 10, 7, 8]} +{"sent_id": [5, 1, 0, 3, 13, 16]} +{"sent_id": [13, 0, 9, 5, 6, 12]} +{"sent_id": [1, 4, 2, 0, 3, 5]} +{"sent_id": [4, 0, 3, 13, 5, 2]} +{"sent_id": [1, 7, 5, 0, 2, 6]} +{"sent_id": [1, 4, 2, 13, 5, 6]} +{"sent_id": [1, 5, 4, 8, 12, 9]} +{"sent_id": [3, 1, 11, 4, 2, 0]} +{"sent_id": [1, 2, 0, 8, 13, 14]} +{"sent_id": [2, 4, 1, 6, 5, 16]} +{"sent_id": [1, 10, 0, 9, 6, 13]} +{"sent_id": [2, 6, 5, 8, 4, 1]} +{"sent_id": [1, 5, 2, 0, 4, 10]} +{"sent_id": [3, 2, 1, 10, 7, 5]} +{"sent_id": [0, 2, 11, 1, 8, 12]} +{"sent_id": [3, 13, 4, 2, 0, 7]} +{"sent_id": [4, 1, 0, 2, 3, 7]} +{"sent_id": [1, 12, 3, 2, 10, 0]} +{"sent_id": [1, 4, 14, 5, 2, 6]} +{"sent_id": [0, 1, 9, 12, 11, 3]} +{"sent_id": [2, 4, 20, 0, 3, 5]} +{"sent_id": [0, 1, 10, 2, 5, 18]} +{"sent_id": [3, 14, 0, 1, 2, 4]} +{"sent_id": [1, 2, 3, 5, 7, 8]} +{"sent_id": [4, 0, 9, 3, 1, 7]} +{"sent_id": [5, 4, 8, 6, 9, 1]} +{"sent_id": [1, 6, 2, 8, 0, 7]} +{"sent_id": [3, 0, 4, 12, 7, 10]} +{"sent_id": [16, 1, 3, 4, 8, 9]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [11, 5, 4, 3, 6, 0]} +{"sent_id": [3, 1, 2, 16, 0, 9]} +{"sent_id": [0, 11, 3, 9, 1, 2]} +{"sent_id": [7, 1, 0, 5, 10, 13]} +{"sent_id": [3, 4, 1, 7, 2, 0]} +{"sent_id": [3, 9, 14, 1, 4, 0]} +{"sent_id": [1, 2, 3, 6, 18, 0]} +{"sent_id": [1, 2, 4, 8, 5, 0]} +{"sent_id": [9, 3, 10, 1, 4, 2]} +{"sent_id": [2, 7, 3, 12, 0, 8]} +{"sent_id": [17, 0, 3, 5, 2, 1]} +{"sent_id": [2, 1, 4, 5, 11, 0]} +{"sent_id": [1, 3, 4, 0, 15, 5]} +{"sent_id": [5, 8, 16, 7, 6, 1]} +{"sent_id": [1, 6, 4, 3, 2, 5]} +{"sent_id": [1, 0, 6, 10, 5, 2]} +{"sent_id": [2, 1, 0, 4, 5, 14]} +{"sent_id": [0, 2, 6, 1, 5, 7]} +{"sent_id": [1, 0, 2, 9, 6, 3]} +{"sent_id": [2, 0, 4, 1, 3, 6]} +{"sent_id": [3, 6, 2, 1, 0, 9]} +{"sent_id": [1, 8, 0, 6, 5, 3]} +{"sent_id": [1, 15, 5, 6, 22, 0]} +{"sent_id": [2, 1, 7, 0, 5, 13]} +{"sent_id": [1, 2, 9, 0, 3, 4]} +{"sent_id": [0, 2, 1, 5, 12, 8]} +{"sent_id": [3, 4, 11, 5, 2, 1]} +{"sent_id": [0, 1, 6, 2, 4, 9]} +{"sent_id": [2, 3, 5, 6, 4, 1]} +{"sent_id": [2, 1, 4, 3, 5, 8]} +{"sent_id": [4, 5, 1, 0, 6, 2]} +{"sent_id": [3, 4, 2, 1, 8, 7]} +{"sent_id": [3, 4, 0, 2, 5, 11]} +{"sent_id": [5, 9, 2, 1, 6, 10]} +{"sent_id": [1, 10, 4, 2, 16, 0]} +{"sent_id": [1, 2, 3, 5, 13, 6]} +{"sent_id": [1, 4, 0, 2, 5, 3]} +{"sent_id": [1, 3, 4, 2, 8, 0]} +{"sent_id": [4, 6, 0, 7, 2, 17]} +{"sent_id": [2, 0, 7, 8, 1, 9]} +{"sent_id": [2, 8, 0, 4, 5, 9]} +{"sent_id": [3, 5, 1, 0, 4, 6]} +{"sent_id": [1, 4, 0, 2, 11, 10]} +{"sent_id": [1, 2, 8, 3, 7, 5]} +{"sent_id": [2, 7, 3, 6, 13, 4]} +{"sent_id": [2, 0, 6, 4, 9, 3]} +{"sent_id": [1, 3, 4, 2, 6, 0]} +{"sent_id": [2, 1, 14, 3, 5, 4]} +{"sent_id": [1, 2, 5, 8, 12, 4]} +{"sent_id": [3, 5, 4, 14, 2, 1]} +{"sent_id": [4, 5, 9, 2, 3, 6]} +{"sent_id": [1, 0, 2, 8, 13, 21]} +{"sent_id": [1, 2, 5, 8, 3, 4]} +{"sent_id": [4, 2, 3, 5, 0, 6]} +{"sent_id": [3, 1, 2, 12, 11, 5]} +{"sent_id": [4, 0, 1, 2, 8, 3]} +{"sent_id": [2, 1, 5, 6, 0, 4]} +{"sent_id": [2, 1, 3, 4, 6, 7]} +{"sent_id": [4, 2, 0, 9, 3, 10]} +{"sent_id": [2, 1, 3, 4, 5, 6]} +{"sent_id": [1, 3, 5, 0, 6, 7]} +{"sent_id": [0, 3, 1, 4, 2, 8]} +{"sent_id": [0, 4, 3, 1, 12, 2]} +{"sent_id": [1, 14, 4, 0, 3, 2]} +{"sent_id": [1, 0, 2, 13, 6, 4]} +{"sent_id": [11, 6, 2, 3, 9, 10]} +{"sent_id": [2, 7, 8, 4, 15, 10]} +{"sent_id": [3, 9, 0, 1, 10, 2]} +{"sent_id": [0, 1, 3, 2, 4, 5]} +{"sent_id": [3, 4, 5, 1, 2, 0]} +{"sent_id": [1, 4, 3, 2, 8, 11]} +{"sent_id": [0, 1, 3, 2, 4, 8]} +{"sent_id": [3, 1, 4, 5, 7, 0]} +{"sent_id": [2, 1, 4, 5, 13, 0]} +{"sent_id": [3, 1, 2, 5, 9, 4]} +{"sent_id": [1, 7, 2, 0, 10, 3]} +{"sent_id": [3, 0, 2, 1, 4, 13]} +{"sent_id": [4, 14, 5, 1, 2, 16]} +{"sent_id": [4, 1, 0, 8, 11, 5]} +{"sent_id": [0, 3, 7, 4, 8, 13]} +{"sent_id": [10, 12, 11, 14, 5, 13]} +{"sent_id": [1, 3, 0, 2, 8, 5]} +{"sent_id": [2, 5, 1, 9, 4, 11]} +{"sent_id": [0, 15, 4, 8, 3, 5]} +{"sent_id": [0, 3, 1, 2, 4, 8]} +{"sent_id": [1, 4, 2, 3, 0, 5]} +{"sent_id": [4, 13, 12, 17, 8, 2]} +{"sent_id": [3, 1, 2, 7, 8, 0]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [3, 4, 1, 5, 0, 9]} +{"sent_id": [3, 5, 0, 13, 2, 17]} +{"sent_id": [3, 0, 8, 2, 12, 7]} +{"sent_id": [1, 3, 2, 0, 4, 5]} +{"sent_id": [1, 0, 2, 9, 7, 4]} +{"sent_id": [1, 5, 0, 8, 3, 6]} +{"sent_id": [0, 2, 4, 5, 3, 1]} +{"sent_id": [0, 9, 2, 4, 3, 18]} +{"sent_id": [1, 4, 2, 3, 8, 9]} +{"sent_id": [3, 4, 5, 9, 6, 2]} +{"sent_id": [9, 3, 2, 1, 5, 4]} +{"sent_id": [0, 3, 4, 2, 1, 5]} +{"sent_id": [1, 7, 4, 0, 13, 12]} +{"sent_id": [0, 1, 2, 7, 5, 12]} +{"sent_id": [1, 3, 0, 14, 5, 4]} +{"sent_id": [2, 0, 6, 7, 3, 4]} +{"sent_id": [2, 1, 8, 4, 5, 3]} +{"sent_id": [8, 12, 9, 10, 17, 18]} +{"sent_id": [0, 2, 4, 3, 1, 5]} +{"sent_id": [1, 4, 2, 5, 0, 3]} +{"sent_id": [2, 7, 1, 4, 3, 6]} +{"sent_id": [0, 3, 10, 8, 1, 11]} +{"sent_id": [0, 8, 10, 3, 11, 17]} +{"sent_id": [14, 18, 7, 8, 4, 6]} +{"sent_id": [1, 13, 9, 0, 7, 10]} +{"sent_id": [3, 1, 4, 6, 0, 2]} +{"sent_id": [4, 1, 2, 5, 7, 9]} +{"sent_id": [8, 6, 2, 0, 13, 16]} +{"sent_id": [3, 2, 4, 14, 1, 15]} +{"sent_id": [1, 15, 6, 11, 9, 4]} +{"sent_id": [3, 4, 1, 0, 17, 2]} +{"sent_id": [10, 3, 2, 1, 0, 11]} +{"sent_id": [0, 4, 3, 2, 8, 1]} +{"sent_id": [4, 5, 1, 6, 2, 3]} +{"sent_id": [1, 4, 2, 0, 5, 8]} +{"sent_id": [4, 5, 0, 1, 3, 2]} +{"sent_id": [0, 8, 4, 1, 6, 3]} +{"sent_id": [1, 2, 4, 13, 0, 5]} +{"sent_id": [3, 1, 6, 5, 8, 2]} +{"sent_id": [1, 2, 5, 4, 0, 12]} +{"sent_id": [1, 3, 13, 2, 4, 9]} +{"sent_id": [3, 2, 9, 0, 5, 10]} +{"sent_id": [1, 7, 2, 8, 0, 9]} +{"sent_id": [1, 2, 9, 3, 10, 8]} +{"sent_id": [0, 15, 14, 4, 17, 2]} +{"sent_id": [1, 5, 0, 2, 4, 7]} +{"sent_id": [1, 3, 10, 8, 0, 19]} +{"sent_id": [2, 1, 8, 5, 13, 3]} +{"sent_id": [2, 1, 3, 5, 0, 11]} +{"sent_id": [4, 2, 1, 0, 5, 3]} +{"sent_id": [2, 0, 5, 13, 7, 1]} +{"sent_id": [6, 0, 10, 1, 2, 4]} +{"sent_id": [0, 4, 2, 1, 5, 8]} +{"sent_id": [3, 10, 6, 8, 4, 5]} +{"sent_id": [1, 2, 6, 3, 11, 5]} +{"sent_id": [0, 8, 4, 1, 2, 3]} +{"sent_id": [3, 2, 1, 4, 10, 9]} +{"sent_id": [1, 2, 0, 12, 14, 9]} +{"sent_id": [3, 2, 1, 10, 7, 0]} +{"sent_id": [3, 2, 9, 5, 4, 1]} +{"sent_id": [1, 3, 2, 0, 16, 15]} +{"sent_id": [4, 0, 10, 1, 8, 9]} +{"sent_id": [4, 5, 0, 15, 9, 6]} +{"sent_id": [6, 9, 0, 1, 2, 3]} +{"sent_id": [1, 2, 8, 5, 10, 12]} +{"sent_id": [6, 9, 2, 1, 0, 3]} +{"sent_id": [1, 0, 2, 7, 17, 3]} +{"sent_id": [2, 8, 6, 3, 4, 5]} +{"sent_id": [0, 2, 3, 10, 5, 1]} +{"sent_id": [4, 3, 1, 2, 6, 10]} +{"sent_id": [2, 1, 3, 7, 6, 12]} +{"sent_id": [5, 13, 0, 10, 3, 2]} +{"sent_id": [1, 2, 5, 7, 6, 3]} +{"sent_id": [4, 5, 1, 12, 2, 0]} +{"sent_id": [0, 1, 3, 9, 7, 10]} +{"sent_id": [3, 11, 1, 10, 2, 0]} +{"sent_id": [4, 2, 0, 1, 12, 3]} +{"sent_id": [1, 6, 4, 2, 0, 7]} +{"sent_id": [0, 2, 1, 3, 6, 5]} +{"sent_id": [3, 2, 0, 7, 4, 9]} +{"sent_id": [3, 13, 4, 2, 8, 1]} +{"sent_id": [1, 3, 2, 12, 9, 0]} +{"sent_id": [1, 2, 0, 11, 8, 12]} +{"sent_id": [1, 0, 8, 2, 9, 12]} +{"sent_id": [3, 2, 1, 4, 12, 10]} +{"sent_id": [5, 4, 3, 0, 1, 16]} +{"sent_id": [1, 2, 6, 3, 5, 0]} +{"sent_id": [0, 11, 1, 10, 12, 13]} +{"sent_id": [1, 4, 0, 3, 11, 2]} +{"sent_id": [3, 4, 1, 0, 7, 5]} +{"sent_id": [0, 1, 2, 5, 3, 11]} +{"sent_id": [3, 11, 2, 7, 4, 9]} +{"sent_id": [3, 2, 5, 1, 9, 12]} +{"sent_id": [2, 3, 5, 8, 4, 7]} +{"sent_id": [2, 4, 0, 3, 5, 15]} +{"sent_id": [1, 2, 4, 7, 6, 12]} +{"sent_id": [0, 4, 6, 3, 7, 2]} +{"sent_id": [5, 4, 6, 2, 3, 15]} +{"sent_id": [3, 4, 8, 1, 2, 13]} +{"sent_id": [1, 0, 10, 3, 2, 16]} +{"sent_id": [1, 2, 3, 5, 6, 4]} +{"sent_id": [1, 3, 9, 2, 7, 8]} +{"sent_id": [3, 8, 0, 1, 2, 4]} +{"sent_id": [1, 2, 0, 13, 14, 4]} +{"sent_id": [14, 1, 0, 2, 4, 3]} +{"sent_id": [4, 3, 5, 0, 1, 2]} +{"sent_id": [1, 4, 3, 2, 5, 6]} +{"sent_id": [1, 5, 6, 2, 0, 8]} +{"sent_id": [1, 2, 8, 13, 4, 5]} +{"sent_id": [4, 3, 2, 5, 8, 16]} +{"sent_id": [1, 0, 2, 11, 17, 7]} +{"sent_id": [1, 4, 10, 2, 3, 9]} +{"sent_id": [1, 3, 2, 4, 0, 5]} +{"sent_id": [3, 4, 6, 2, 12, 9]} +{"sent_id": [3, 4, 2, 5, 1, 9]} +{"sent_id": [1, 2, 4, 0, 3, 8]} +{"sent_id": [1, 2, 6, 11, 7, 5]} +{"sent_id": [0, 1, 2, 3, 13, 20]} +{"sent_id": [0, 1, 9, 2, 3, 8]} +{"sent_id": [1, 2, 12, 8, 3, 6]} +{"sent_id": [1, 8, 2, 0, 3, 10]} +{"sent_id": [2, 4, 5, 3, 6, 0]} +{"sent_id": [2, 3, 4, 6, 5, 8]} +{"sent_id": [3, 1, 14, 4, 2, 13]} +{"sent_id": [7, 10, 2, 4, 3, 9]} +{"sent_id": [0, 1, 4, 13, 20, 3]} +{"sent_id": [1, 7, 3, 4, 2, 9]} +{"sent_id": [4, 1, 2, 7, 0, 13]} +{"sent_id": [1, 2, 4, 5, 7, 3]} +{"sent_id": [1, 2, 3, 10, 12, 0]} +{"sent_id": [5, 1, 3, 6, 4, 12]} +{"sent_id": [0, 1, 5, 9, 8, 7]} +{"sent_id": [3, 0, 1, 7, 4, 6]} +{"sent_id": [0, 1, 11, 10, 3, 8]} +{"sent_id": [0, 1, 4, 5, 3, 11]} +{"sent_id": [4, 14, 0, 16, 1, 3]} +{"sent_id": [19, 8, 3, 5, 20, 12]} +{"sent_id": [3, 0, 4, 15, 2, 1]} +{"sent_id": [0, 4, 2, 1, 3, 15]} +{"sent_id": [3, 2, 4, 14, 13, 17]} +{"sent_id": [5, 1, 3, 2, 11, 8]} +{"sent_id": [4, 1, 2, 3, 0, 6]} +{"sent_id": [3, 0, 1, 2, 7, 12]} +{"sent_id": [2, 1, 0, 5, 6, 14]} +{"sent_id": [1, 2, 3, 6, 15, 5]} +{"sent_id": [1, 8, 0, 3, 9, 13]} +{"sent_id": [4, 3, 15, 0, 1, 5]} +{"sent_id": [4, 1, 12, 0, 7, 6]} +{"sent_id": [1, 2, 3, 4, 10, 9]} +{"sent_id": [3, 1, 0, 2, 4, 5]} +{"sent_id": [5, 0, 3, 1, 2, 14]} +{"sent_id": [1, 2, 6, 21, 20, 19]} +{"sent_id": [1, 2, 7, 6, 5, 14]} +{"sent_id": [11, 0, 1, 3, 10, 16]} +{"sent_id": [3, 10, 4, 5, 7, 2]} +{"sent_id": [2, 5, 4, 1, 6, 8]} +{"sent_id": [0, 8, 5, 11, 4, 12]} +{"sent_id": [5, 2, 3, 4, 12, 8]} +{"sent_id": [0, 1, 2, 4, 5, 3]} +{"sent_id": [2, 1, 17, 8, 18, 0]} +{"sent_id": [9, 7, 3, 4, 0, 5]} +{"sent_id": [1, 3, 6, 11, 4, 7]} +{"sent_id": [5, 10, 0, 9, 15, 2]} +{"sent_id": [6, 3, 7, 18, 17, 15]} +{"sent_id": [4, 3, 1, 0, 2, 17]} +{"sent_id": [4, 3, 2, 0, 5, 1]} +{"sent_id": [0, 11, 1, 3, 4, 2]} +{"sent_id": [0, 1, 2, 13, 5, 3]} +{"sent_id": [1, 0, 2, 4, 3, 8]} +{"sent_id": [2, 3, 1, 6, 12, 4]} +{"sent_id": [1, 6, 2, 0, 7, 3]} +{"sent_id": [9, 1, 6, 11, 7, 12]} +{"sent_id": [3, 11, 1, 2, 4, 0]} +{"sent_id": [1, 2, 3, 11, 0, 7]} +{"sent_id": [1, 6, 4, 3, 7, 2]} +{"sent_id": [1, 3, 4, 2, 5, 11]} +{"sent_id": [10, 1, 3, 15, 0, 8]} +{"sent_id": [1, 0, 2, 3, 4, 6]} +{"sent_id": [0, 6, 9, 19, 8, 17]} +{"sent_id": [1, 2, 17, 0, 18, 13]} +{"sent_id": [4, 9, 1, 3, 5, 15]} +{"sent_id": [4, 3, 2, 5, 1, 0]} +{"sent_id": [6, 5, 9, 7, 11, 2]} +{"sent_id": [0, 1, 2, 4, 9, 8]} +{"sent_id": [1, 3, 0, 2, 6, 7]} +{"sent_id": [1, 2, 4, 0, 5, 10]} +{"sent_id": [2, 1, 4, 11, 6, 12]} +{"sent_id": [2, 1, 14, 7, 5, 3]} +{"sent_id": [3, 5, 1, 6, 13, 2]} +{"sent_id": [2, 1, 6, 0, 3, 7]} +{"sent_id": [3, 4, 1, 0, 5, 2]} +{"sent_id": [3, 1, 2, 13, 4, 0]} +{"sent_id": [2, 5, 1, 0, 6, 12]} +{"sent_id": [3, 4, 8, 7, 5, 2]} +{"sent_id": [1, 3, 4, 2, 5, 11]} +{"sent_id": [3, 4, 2, 0, 10, 9]} +{"sent_id": [2, 1, 3, 4, 0, 6]} +{"sent_id": [2, 1, 3, 5, 4, 0]} +{"sent_id": [6, 1, 2, 8, 3, 7]} +{"sent_id": [2, 5, 7, 6, 13, 4]} +{"sent_id": [0, 3, 1, 7, 6, 2]} +{"sent_id": [3, 6, 0, 1, 7, 8]} +{"sent_id": [1, 0, 5, 2, 4, 3]} +{"sent_id": [3, 8, 18, 1, 2, 10]} +{"sent_id": [1, 4, 10, 8, 2, 5]} +{"sent_id": [1, 4, 2, 5, 12, 15]} +{"sent_id": [4, 5, 3, 2, 11, 6]} +{"sent_id": [3, 9, 0, 4, 5, 1]} +{"sent_id": [1, 2, 3, 4, 11, 7]} +{"sent_id": [3, 1, 2, 0, 17, 14]} +{"sent_id": [0, 4, 6, 10, 2, 9]} +{"sent_id": [5, 14, 6, 1, 4, 2]} +{"sent_id": [0, 4, 6, 12, 5, 11]} +{"sent_id": [3, 2, 12, 18, 4, 10]} +{"sent_id": [0, 3, 9, 11, 1, 10]} +{"sent_id": [1, 3, 0, 2, 13, 6]} +{"sent_id": [1, 2, 4, 3, 0, 5]} +{"sent_id": [6, 2, 7, 1, 4, 14]} +{"sent_id": [2, 1, 0, 7, 9, 4]} +{"sent_id": [2, 8, 0, 1, 11, 9]} +{"sent_id": [1, 2, 3, 10, 0, 5]} +{"sent_id": [0, 20, 13, 4, 1, 14]} +{"sent_id": [1, 2, 6, 3, 12, 5]} +{"sent_id": [1, 2, 3, 9, 10, 0]} +{"sent_id": [1, 2, 10, 0, 3, 13]} +{"sent_id": [5, 4, 1, 8, 3, 2]} +{"sent_id": [3, 5, 2, 4, 15, 10]} +{"sent_id": [3, 0, 1, 2, 11, 10]} +{"sent_id": [0, 1, 2, 3, 9, 5]} +{"sent_id": [4, 3, 7, 1, 9, 5]} +{"sent_id": [0, 9, 7, 2, 4, 1]} +{"sent_id": [0, 2, 8, 4, 6, 1]} +{"sent_id": [1, 2, 4, 0, 8, 5]} +{"sent_id": [1, 0, 2, 5, 9, 8]} +{"sent_id": [1, 5, 3, 6, 0, 2]} +{"sent_id": [0, 2, 3, 4, 9, 11]} +{"sent_id": [1, 6, 8, 0, 11, 7]} +{"sent_id": [1, 3, 4, 9, 6, 2]} +{"sent_id": [2, 1, 5, 4, 9, 0]} +{"sent_id": [3, 2, 12, 6, 1, 0]} +{"sent_id": [3, 1, 0, 4, 2, 7]} +{"sent_id": [1, 0, 2]} +{"sent_id": [0, 1, 2, 5, 10, 6]} +{"sent_id": [3, 12, 2, 4, 0, 13]} +{"sent_id": [2, 6, 13, 23, 21, 9]} +{"sent_id": [0, 1, 11, 3, 5, 7]} +{"sent_id": [0, 1, 14, 2, 13, 12]} +{"sent_id": [4, 9, 2, 1, 7, 6]} +{"sent_id": [3, 4, 2, 5, 1, 0]} +{"sent_id": [3, 4, 8, 0, 2, 1]} +{"sent_id": [1, 0, 10, 7, 2, 4]} +{"sent_id": [2, 1, 7, 0, 3, 14]} +{"sent_id": [1, 7, 2, 0, 11, 16]} +{"sent_id": [1, 2, 5, 3, 0, 6]} +{"sent_id": [3, 4, 12, 2, 6, 0]} +{"sent_id": [1, 12, 16, 6, 2, 11]} +{"sent_id": [3, 6, 1, 5, 4, 0]} +{"sent_id": [2, 4, 5, 1, 9, 10]} +{"sent_id": [4, 5, 2, 1, 3, 0]} +{"sent_id": [3, 0, 1, 5, 4, 2]} +{"sent_id": [3, 14, 4, 5, 2, 7]} +{"sent_id": [5, 0, 4, 2, 1, 7]} +{"sent_id": [0, 2, 5, 10, 1, 9]} +{"sent_id": [2, 0, 12, 5, 4, 9]} +{"sent_id": [2, 3, 1, 5, 4, 0]} +{"sent_id": [1, 2, 0, 12, 3, 5]} +{"sent_id": [7, 1, 2, 6, 0, 3]} +{"sent_id": [1, 2, 6, 9, 8, 12]} +{"sent_id": [0, 10, 4, 1, 2, 7]} +{"sent_id": [1, 2, 0, 3, 8, 4]} +{"sent_id": [16, 7, 8, 5, 4, 9]} +{"sent_id": [7, 0, 1, 2, 3, 5]} +{"sent_id": [3, 1, 4, 5, 10, 11]} +{"sent_id": [4, 1, 3, 16, 2, 11]} +{"sent_id": [6, 1, 7, 5, 11, 3]} +{"sent_id": [2, 0, 3, 7, 8, 12]} +{"sent_id": [1, 2, 3, 4, 11, 0]} +{"sent_id": [0, 1, 2, 9, 3, 4]} +{"sent_id": [5, 3, 2, 12, 8, 13]} +{"sent_id": [0, 3, 12, 1, 4, 7]} +{"sent_id": [3, 2, 6, 8, 4, 7]} +{"sent_id": [1, 3, 4, 2, 5, 12]} +{"sent_id": [8, 4, 9, 3, 2, 11]} +{"sent_id": [2, 3, 1, 4, 0, 9]} +{"sent_id": [2, 13, 3, 0, 8, 1]} +{"sent_id": [4, 2, 1, 0, 10, 6]} +{"sent_id": [3, 1, 11, 2, 9, 7]} +{"sent_id": [1, 4, 6, 0, 2, 7]} +{"sent_id": [4, 1, 3, 2, 5, 13]} +{"sent_id": [2, 3, 10, 5, 0, 4]} +{"sent_id": [9, 17, 6, 7, 3, 18]} +{"sent_id": [1, 14, 4, 3, 0, 16]} +{"sent_id": [15, 0, 1, 10, 14, 2]} +{"sent_id": [13, 3, 0, 2, 9, 7]} +{"sent_id": [1, 5, 4, 2, 0, 14]} +{"sent_id": [13, 12, 0, 2, 18, 6]} +{"sent_id": [8, 6, 3, 4, 0, 1]} +{"sent_id": [1, 2, 5, 9, 7, 0]} +{"sent_id": [3, 6, 8, 4, 10, 5]} +{"sent_id": [10, 7, 11, 1, 2, 0]} +{"sent_id": [2, 3, 0, 1, 6, 5]} +{"sent_id": [2, 3, 12, 0, 7, 4]} +{"sent_id": [3, 2, 1, 11, 0, 4]} +{"sent_id": [3, 1, 4, 2, 0, 7]} +{"sent_id": [0, 6, 1, 2, 7, 15]} +{"sent_id": [4, 3, 0, 1, 10, 2]} +{"sent_id": [4, 0, 1, 3, 5, 2]} +{"sent_id": [12, 13, 3, 1, 2, 14]} +{"sent_id": [3, 5, 4, 10, 7, 2]} +{"sent_id": [1, 2, 7, 0, 8, 4]} +{"sent_id": [1, 4, 2, 0, 5, 10]} +{"sent_id": [14, 0, 5, 1, 6, 10]} +{"sent_id": [5, 1, 3, 7, 2, 4]} +{"sent_id": [1, 7, 2, 12, 0, 3]} +{"sent_id": [1, 0, 7, 13, 4, 2]} +{"sent_id": [1, 14, 2, 3, 0, 5]} +{"sent_id": [1, 3, 2, 0, 4, 12]} +{"sent_id": [2, 1, 10, 4, 13, 0]} +{"sent_id": [3, 1, 8, 6, 5, 2]} +{"sent_id": [5, 6, 17, 0, 7, 2]} +{"sent_id": [2, 4, 3, 7, 1, 13]} +{"sent_id": [1, 3, 2, 9, 8, 4]} +{"sent_id": [1, 2, 3, 16, 5, 4]} +{"sent_id": [0, 5, 6, 4, 1, 10]} +{"sent_id": [4, 10, 3, 5, 9, 0]} +{"sent_id": [0, 1, 3, 5, 9, 4]} +{"sent_id": [1, 14, 2, 0, 20, 22]} +{"sent_id": [1, 3, 5, 2, 4, 14]} +{"sent_id": [3, 4, 0, 1, 11, 2]} +{"sent_id": [0, 14, 4, 5, 2, 9]} +{"sent_id": [0, 1, 6, 8, 11, 7]} +{"sent_id": [1, 4, 2, 5, 0, 3]} +{"sent_id": [3, 2, 6, 5, 9, 8]} +{"sent_id": [1, 2, 5, 4, 3, 6]} +{"sent_id": [9, 0, 3, 10, 4, 5]} +{"sent_id": [7, 17, 0, 9, 14, 2]} +{"sent_id": [7, 1, 3, 0, 5, 4]} +{"sent_id": [0, 3, 9, 1, 13, 4]} +{"sent_id": [1, 2, 3, 14, 4, 5]} +{"sent_id": [1, 2, 3, 16, 7, 0]} +{"sent_id": [4, 10, 3, 11, 5, 12]} +{"sent_id": [3, 12, 0, 5, 1, 2]} +{"sent_id": [3, 5, 1, 2, 4, 7]} +{"sent_id": [0, 1, 2, 6, 14, 16]} +{"sent_id": [1, 0, 3, 2, 5, 4]} +{"sent_id": [1, 2, 3, 8, 5, 7]} +{"sent_id": [3, 9, 4, 1, 0, 15]} +{"sent_id": [5, 4, 11, 12, 9, 2]} +{"sent_id": [5, 18, 9, 2, 19, 3]} +{"sent_id": [3, 0, 2, 1, 4, 5]} +{"sent_id": [2, 0, 1, 6, 18, 5]} +{"sent_id": [0, 1, 9, 6, 8, 4]} +{"sent_id": [0, 2, 3, 10, 5, 9]} +{"sent_id": [0, 2, 4, 3, 1, 9]} +{"sent_id": [3, 1, 12, 4, 13, 14]} +{"sent_id": [1, 0, 4, 7, 8, 2]} +{"sent_id": [7, 5, 9, 10, 1, 2]} +{"sent_id": [0, 2, 1, 7, 9, 4]} +{"sent_id": [1, 2, 7, 0, 3, 5]} +{"sent_id": [0, 1, 3, 13, 8, 2]} +{"sent_id": [0, 2, 1, 3, 6, 11]} +{"sent_id": [1, 3, 12, 8, 7, 0]} +{"sent_id": [1, 2, 3, 12, 7, 13]} +{"sent_id": [3, 4, 2, 6, 5, 8]} +{"sent_id": [1, 3, 2, 8, 6, 11]} +{"sent_id": [3, 1, 9, 4, 2, 5]} +{"sent_id": [0, 4, 6, 1, 5, 3]} +{"sent_id": [3, 14, 4, 13, 12, 1]} +{"sent_id": [2, 1, 3, 6, 8, 4]} +{"sent_id": [12, 2, 4, 3, 7, 13]} +{"sent_id": [3, 1, 2, 8, 7, 4]} +{"sent_id": [1, 2, 3, 7, 5, 0]} +{"sent_id": [3, 2, 9, 4, 13, 7]} +{"sent_id": [0, 2, 3, 5, 1, 10]} +{"sent_id": [1, 2, 5, 6, 4, 0]} +{"sent_id": [0, 6, 5, 8, 3, 1]} +{"sent_id": [3, 1, 2, 8, 13, 14]} +{"sent_id": [1, 5, 3, 2, 6, 0]} +{"sent_id": [4, 1, 5, 12, 10, 2]} +{"sent_id": [1, 11, 10, 6, 3, 2]} +{"sent_id": [3, 4, 5, 0, 2, 12]} +{"sent_id": [9, 8, 3, 6, 0, 2]} +{"sent_id": [0, 4, 2, 1, 15, 8]} +{"sent_id": [1, 2, 4, 0, 3, 5]} +{"sent_id": [2, 1, 11, 15, 12, 19]} +{"sent_id": [0, 3, 4, 1, 5, 6]} +{"sent_id": [3, 2, 1, 7, 4, 6]} +{"sent_id": [0, 1, 4, 3, 7, 2]} +{"sent_id": [3, 4, 0, 7, 1, 12]} +{"sent_id": [3, 0, 4, 19, 1, 2]} +{"sent_id": [2, 1, 4, 5, 0, 3]} +{"sent_id": [1, 2, 15, 3, 5, 12]} +{"sent_id": [1, 7, 2, 4, 0, 6]} +{"sent_id": [1, 0, 6, 7, 3, 4]} +{"sent_id": [1, 3, 2, 4, 7, 5]} +{"sent_id": [3, 2, 10, 9, 11, 7]} +{"sent_id": [1, 2, 0, 5, 11, 4]} +{"sent_id": [0, 13, 6, 14, 5, 10]} +{"sent_id": [2, 1, 4, 7, 6, 5]} +{"sent_id": [9, 3, 10, 4, 1, 8]} +{"sent_id": [2, 9, 3, 6, 8, 7]} +{"sent_id": [5, 3, 0, 6, 2, 1]} +{"sent_id": [0, 2, 4, 3, 10, 7]} +{"sent_id": [0, 1, 3, 2, 13, 12]} +{"sent_id": [2, 1, 0, 14, 7, 11]} +{"sent_id": [0, 7, 1, 3, 2, 5]} +{"sent_id": [1, 3, 15, 12, 0, 4]} +{"sent_id": [2, 3, 6, 1, 11, 10]} +{"sent_id": [2, 1, 3, 11, 6, 4]} +{"sent_id": [3, 0, 7, 8, 1, 15]} +{"sent_id": [5, 1, 2, 4, 11, 15]} +{"sent_id": [0, 4, 13, 2, 7, 14]} +{"sent_id": [0, 4, 1, 3, 2, 11]} +{"sent_id": [1, 2, 4, 5, 10, 6]} +{"sent_id": [2, 3, 1, 8, 7, 6]} +{"sent_id": [3, 4, 0, 2, 1, 5]} +{"sent_id": [1, 2, 5, 7, 10, 6]} +{"sent_id": [2, 1, 11, 4, 8, 0]} +{"sent_id": [1, 3, 13, 4, 5, 2]} +{"sent_id": [9, 7, 1, 2, 6, 3]} +{"sent_id": [2, 1, 5, 0, 9, 7]} +{"sent_id": [1, 2, 7, 3, 4, 5]} +{"sent_id": [13, 6, 8, 7, 5, 9]} +{"sent_id": [8, 2, 9, 19, 16, 11]} +{"sent_id": [4, 5, 6, 11, 9, 3]} +{"sent_id": [2, 1, 0, 6, 7, 5]} +{"sent_id": [3, 11, 2, 1, 5, 10]} +{"sent_id": [2, 10, 4, 3, 0, 1]} +{"sent_id": [2, 1, 3, 0, 12, 15]} +{"sent_id": [2, 1, 3, 0, 9, 16]} +{"sent_id": [0, 2, 4, 19, 1, 13]} +{"sent_id": [3, 2, 7, 8, 4, 0]} +{"sent_id": [7, 0, 2, 3, 1, 11]} +{"sent_id": [1, 8, 12, 2, 3, 5]} +{"sent_id": [3, 1, 0, 6, 4, 5]} +{"sent_id": [3, 1, 2, 5, 4, 0]} +{"sent_id": [3, 1, 4, 2, 8, 9]} +{"sent_id": [1, 2, 3, 0, 4, 7]} +{"sent_id": [1, 3, 10, 4, 0, 6]} +{"sent_id": [0, 9, 2, 1, 3, 8]} +{"sent_id": [0, 2, 1, 3, 13, 6]} +{"sent_id": [0, 5, 18, 1, 19, 21]} +{"sent_id": [4, 5, 9, 17, 6, 12]} +{"sent_id": [10, 1, 2, 3, 8, 0]} +{"sent_id": [1, 2, 0, 3, 7, 14]} +{"sent_id": [0, 3, 1, 7, 2, 15]} +{"sent_id": [2, 10, 7, 11, 4, 0]} +{"sent_id": [1, 2, 5, 13, 3, 6]} +{"sent_id": [7, 2, 0, 4, 3, 17]} +{"sent_id": [0, 1, 2, 3, 4, 9]} +{"sent_id": [0, 1, 4, 2, 3, 9]} +{"sent_id": [5, 6, 2, 7, 11, 8]} +{"sent_id": [1, 6, 7, 2, 3, 0]} +{"sent_id": [3, 4, 0, 15, 5, 1]} +{"sent_id": [3, 2, 4, 1, 0, 13]} +{"sent_id": [0, 2, 6, 1, 12, 5]} +{"sent_id": [15, 16, 2, 10, 7, 18]} +{"sent_id": [4, 3, 2, 9, 16, 1]} +{"sent_id": [1, 4, 2, 3, 5, 8]} +{"sent_id": [3, 2, 10, 11, 5, 7]} +{"sent_id": [1, 5, 2, 3, 4, 6]} +{"sent_id": [6, 5, 15, 7, 4, 3]} +{"sent_id": [0, 4, 5, 14, 6, 8]} +{"sent_id": [0, 6, 3, 5, 11, 2]} +{"sent_id": [2, 0, 7, 3, 14, 4]} +{"sent_id": [2, 1, 4, 10, 3, 12]} +{"sent_id": [3, 4, 0, 13, 1, 12]} +{"sent_id": [2, 3, 12, 0, 4, 6]} +{"sent_id": [9, 10, 11, 7, 13, 6]} +{"sent_id": [3, 4, 5, 0, 1, 2]} +{"sent_id": [1, 3, 4, 2, 5, 12]} +{"sent_id": [3, 4, 2, 5, 13, 6]} +{"sent_id": [4, 14, 3, 10, 19, 8]} +{"sent_id": [2, 4, 11, 3, 9, 8]} +{"sent_id": [4, 1, 5, 6, 9, 11]} +{"sent_id": [2, 11, 0, 3, 1, 5]} +{"sent_id": [9, 16, 0, 2, 3, 4]} +{"sent_id": [3, 0, 4, 2, 12, 11]} +{"sent_id": [2, 1, 3, 16, 4, 13]} +{"sent_id": [0, 3, 2, 1, 4, 7]} +{"sent_id": [3, 2, 4, 7, 6, 0]} +{"sent_id": [0, 1, 6, 4, 2, 7]} +{"sent_id": [1, 2, 4, 0, 3, 8]} +{"sent_id": [2, 1, 0, 9, 3, 5]} +{"sent_id": [7, 0, 10, 3, 2, 1]} +{"sent_id": [1, 4, 0, 3, 5, 13]} +{"sent_id": [3, 4, 1, 0, 10, 7]} +{"sent_id": [1, 2, 3, 14, 10, 7]} +{"sent_id": [3, 4, 0, 12, 8, 6]} +{"sent_id": [1, 8, 5, 2, 15, 4]} +{"sent_id": [11, 3, 0, 2, 7, 8]} +{"sent_id": [1, 4, 3, 2, 8, 5]} +{"sent_id": [1, 3, 13, 4, 9, 2]} +{"sent_id": [2, 0, 3, 9, 1, 19]} +{"sent_id": [1, 3, 2, 0, 9, 14]} +{"sent_id": [0, 3, 12, 4, 13, 1]} +{"sent_id": [3, 0, 1, 2, 14, 13]} +{"sent_id": [4, 2, 9, 3, 1, 5]} +{"sent_id": [1, 2, 5, 14, 4, 0]} +{"sent_id": [15, 2, 3, 4, 5, 8]} +{"sent_id": [3, 7, 2, 1, 0, 5]} +{"sent_id": [4, 10, 6, 5, 3, 9]} +{"sent_id": [3, 4, 2, 11, 0, 7]} +{"sent_id": [3, 6, 7, 1, 0, 11]} +{"sent_id": [12, 2, 10, 11, 4, 3]} +{"sent_id": [4, 6, 2, 5, 1, 3]} +{"sent_id": [1, 3, 2, 0, 5, 9]} +{"sent_id": [3, 2, 1, 4, 0, 16]} +{"sent_id": [3, 4, 8, 2, 0, 1]} +{"sent_id": [0, 1, 4, 7, 8, 2]} +{"sent_id": [3, 4, 5, 1, 2, 6]} +{"sent_id": [0, 7, 3, 6, 4, 9]} +{"sent_id": [4, 15, 2, 14, 3, 12]} +{"sent_id": [2, 1, 3, 9, 4, 8]} +{"sent_id": [1, 4, 2, 11, 3, 9]} +{"sent_id": [1, 2, 4, 3, 0, 5]} +{"sent_id": [8, 2, 7, 1, 3, 0]} +{"sent_id": [3, 4, 1, 5, 8, 2]} +{"sent_id": [3, 0, 4, 1, 6, 2]} +{"sent_id": [1, 11, 2, 12, 10, 4]} +{"sent_id": [1, 0, 2, 3, 4, 9]} +{"sent_id": [2, 3, 4, 5, 0, 1]} +{"sent_id": [0, 9, 10, 4, 1, 3]} +{"sent_id": [3, 14, 7, 5, 10, 6]} +{"sent_id": [7, 2, 9, 13, 8, 3]} +{"sent_id": [1, 2, 3, 6, 0, 4]} +{"sent_id": [0, 14, 1, 2, 9, 4]} +{"sent_id": [1, 3, 4, 5, 2, 9]} +{"sent_id": [2, 1, 3, 9, 7, 5]} +{"sent_id": [3, 18, 14, 5, 0, 4]} +{"sent_id": [4, 0, 5, 1, 7, 3]} +{"sent_id": [0, 2, 3, 4, 5, 7]} +{"sent_id": [2, 1, 6, 4, 7, 3]} +{"sent_id": [1, 2, 3, 19, 5, 8]} +{"sent_id": [3, 4, 8, 0, 1, 9]} +{"sent_id": [2, 3, 4, 12, 1, 7]} +{"sent_id": [2, 3, 6, 17, 4, 7]} +{"sent_id": [3, 13, 14, 4, 9, 0]} +{"sent_id": [0, 4, 8, 1, 2, 7]} +{"sent_id": [3, 4, 1, 2, 6, 8]} +{"sent_id": [4, 5, 13, 0, 11, 10]} +{"sent_id": [2, 19, 12, 18, 11, 4]} +{"sent_id": [1, 2, 0, 8, 7, 11]} +{"sent_id": [7, 3, 2, 6, 10, 4]} +{"sent_id": [1, 7, 0, 6, 2, 11]} +{"sent_id": [0, 12, 6, 3, 4, 7]} +{"sent_id": [3, 0, 4, 11, 12, 8]} +{"sent_id": [0, 1, 2, 3, 5, 8]} +{"sent_id": [2, 1, 6, 11, 4, 5]} +{"sent_id": [3, 13, 4, 1, 0, 2]} +{"sent_id": [5, 1, 6, 3, 4, 7]} +{"sent_id": [2, 3, 11, 0, 4, 9]} +{"sent_id": [0, 9, 6, 7, 3, 5]} +{"sent_id": [7, 17, 9, 8, 2, 3]} +{"sent_id": [1, 2, 3, 5, 4, 0]} +{"sent_id": [4, 1, 0, 5, 2, 3]} +{"sent_id": [3, 2, 1, 5, 4, 12]} +{"sent_id": [2, 1, 4, 0, 5, 13]} +{"sent_id": [3, 9, 7, 1, 0, 20]} +{"sent_id": [1, 3, 2, 4, 14, 11]} +{"sent_id": [3, 4, 1, 8, 2, 6]} +{"sent_id": [1, 8, 2, 0, 4, 3]} +{"sent_id": [0, 2, 13, 1, 9, 15]} +{"sent_id": [3, 5, 4, 6, 0, 2]} +{"sent_id": [1, 3, 10, 4, 2, 0]} +{"sent_id": [3, 4, 13, 14, 15, 0]} +{"sent_id": [1, 2, 0, 6, 4, 11]} +{"sent_id": [0, 11, 2, 12, 3, 6]} +{"sent_id": [2, 0, 5, 3, 4, 1]} +{"sent_id": [0, 4, 6, 9, 17, 5]} +{"sent_id": [14, 4, 2, 10, 11, 5]} +{"sent_id": [2, 4, 3, 0, 1, 9]} +{"sent_id": [0, 5, 7, 1, 10, 2]} +{"sent_id": [2, 1, 0, 3, 5, 4]} +{"sent_id": [5, 1, 0, 4, 2, 3]} +{"sent_id": [1, 4, 9, 3, 10, 8]} +{"sent_id": [1, 11, 3, 0, 2, 13]} +{"sent_id": [1, 4, 15, 2, 6, 3]} +{"sent_id": [0, 3, 1, 6, 4, 12]} +{"sent_id": [0, 2, 1, 3, 7, 4]} +{"sent_id": [4, 3, 2, 1, 7, 8]} +{"sent_id": [3, 4, 2, 10, 9, 11]} +{"sent_id": [1, 2, 9, 4, 12, 5]} +{"sent_id": [9, 13, 12, 10, 0, 4]} +{"sent_id": [2, 1, 6, 5, 11, 9]} +{"sent_id": [1, 2, 0, 8, 5, 6]} +{"sent_id": [2, 3, 14, 4, 0, 1]} +{"sent_id": [1, 7, 0, 5, 6, 2]} +{"sent_id": [3, 10, 0, 4, 2, 1]} +{"sent_id": [8, 0, 3, 2, 1, 4]} +{"sent_id": [10, 1, 0, 3, 2, 4]} +{"sent_id": [3, 4, 9, 5, 2, 1]} +{"sent_id": [2, 1, 3, 0, 6, 4]} +{"sent_id": [1, 2, 4, 3, 6, 5]} +{"sent_id": [0, 7, 12, 2, 1, 3]} +{"sent_id": [3, 1, 10, 7, 0, 2]} +{"sent_id": [0, 1, 9, 2, 10, 3]} +{"sent_id": [1, 3, 0, 2, 6, 8]} +{"sent_id": [2, 0, 3, 14, 1, 13]} +{"sent_id": [4, 0, 3, 11, 1, 2]} +{"sent_id": [10, 0, 5, 11, 1, 6]} +{"sent_id": [4, 3, 1, 2, 10, 0]} +{"sent_id": [3, 4, 2, 1, 0, 13]} +{"sent_id": [0, 8, 1, 7, 12, 2]} +{"sent_id": [8, 1, 9, 5, 7, 6]} +{"sent_id": [1, 2, 3, 7, 5, 15]} +{"sent_id": [0, 8, 2, 3, 4, 5]} +{"sent_id": [4, 5, 7, 6, 19, 2]} +{"sent_id": [2, 3, 0, 1, 4, 5]} +{"sent_id": [3, 2, 1, 4, 18, 11]} +{"sent_id": [2, 1, 11, 0, 6, 3]} +{"sent_id": [1, 2, 3, 9, 16, 0]} +{"sent_id": [0, 1, 2, 8, 3, 4]} +{"sent_id": [1, 4, 3, 2, 5, 17]} +{"sent_id": [0, 4, 13, 3, 14, 12]} +{"sent_id": [2, 3, 4, 5, 0, 6]} +{"sent_id": [0, 3, 13, 1, 2, 14]} +{"sent_id": [1, 2, 5, 3, 4, 8]} +{"sent_id": [4, 13, 1, 2, 14, 6]} +{"sent_id": [1, 2, 3, 11, 0, 16]} +{"sent_id": [6, 5, 7, 2, 8, 4]} +{"sent_id": [3, 4, 2, 1, 5, 6]} +{"sent_id": [3, 17, 2, 6, 4, 5]} +{"sent_id": [2, 1, 4, 9, 17, 15]} +{"sent_id": [2, 1, 4, 9, 3, 7]} +{"sent_id": [1, 2, 3, 11, 0, 7]} +{"sent_id": [3, 4, 1, 0, 5, 2]} +{"sent_id": [1, 2, 0, 9, 3, 4]} +{"sent_id": [2, 3, 5, 0, 1, 4]} +{"sent_id": [1, 2, 4, 0, 3, 7]} +{"sent_id": [3, 0, 15, 19, 1, 2]} +{"sent_id": [3, 17, 2, 1, 4, 6]} +{"sent_id": [0, 4, 5, 3, 1, 6]} +{"sent_id": [0, 2, 5, 3, 1, 4]} +{"sent_id": [1, 2, 4, 9, 5, 15]} +{"sent_id": [0, 5, 1, 4, 11, 13]} +{"sent_id": [0, 2, 5, 3, 16, 1]} +{"sent_id": [1, 6, 4, 5, 3, 11]} +{"sent_id": [5, 2, 3, 6, 7, 4]} +{"sent_id": [4, 6, 1, 13, 5, 12]} +{"sent_id": [1, 4, 3, 8, 2, 9]} +{"sent_id": [2, 5, 4, 3, 1, 0]} +{"sent_id": [1, 2, 3, 6, 0, 5]} +{"sent_id": [8, 1, 4, 2, 0, 7]} +{"sent_id": [3, 1, 0, 8, 12, 18]} +{"sent_id": [13, 3, 0, 4, 5, 2]} +{"sent_id": [5, 2, 4, 3, 1, 11]} +{"sent_id": [3, 4, 12, 0, 11, 2]} +{"sent_id": [0, 2, 22, 4, 1, 3]} +{"sent_id": [3, 10, 2, 0, 1, 4]} +{"sent_id": [4, 5, 6, 10, 3, 11]} +{"sent_id": [5, 4, 0, 6, 1, 7]} +{"sent_id": [0, 3, 10, 1, 6, 2]} +{"sent_id": [1, 2, 0, 7, 3, 5]} +{"sent_id": [2, 4, 1, 5, 6, 11]} +{"sent_id": [3, 2, 5, 7, 4, 9]} +{"sent_id": [4, 3, 1, 0, 5, 11]} +{"sent_id": [3, 2, 1, 4, 6, 0]} +{"sent_id": [2, 3, 7, 12, 9, 4]} +{"sent_id": [9, 10, 11, 18, 4, 8]} +{"sent_id": [2, 4, 1, 0, 9, 5]} +{"sent_id": [0, 1, 2, 6, 5, 14]} +{"sent_id": [1, 8, 4, 3, 2, 0]} +{"sent_id": [1, 2, 0, 8, 4, 7]} +{"sent_id": [3, 2, 6, 4, 8, 1]} +{"sent_id": [3, 0, 9, 1, 10, 8]} +{"sent_id": [2, 3, 4, 5, 0, 1]} +{"sent_id": [1, 3, 2, 8, 9, 5]} +{"sent_id": [3, 11, 2, 6, 7, 13]} +{"sent_id": [17, 11, 1, 2, 3, 0]} +{"sent_id": [0, 4, 6, 5, 11, 2]} +{"sent_id": [2, 0, 4, 3, 1, 8]} +{"sent_id": [5, 6, 7, 9, 0, 3]} +{"sent_id": [0, 2, 3, 9, 4, 8]} +{"sent_id": [1, 0, 3, 6, 2, 7]} +{"sent_id": [4, 1, 3, 5, 2, 6]} +{"sent_id": [2, 3, 6, 7, 8, 9]} +{"sent_id": [1, 0, 3, 4, 5, 13]} +{"sent_id": [3, 1, 6, 2, 0, 5]} +{"sent_id": [2, 0, 4, 1, 9, 8]} +{"sent_id": [0, 15, 4, 3, 2, 1]} +{"sent_id": [6, 2, 7, 3, 8, 10]} +{"sent_id": [3, 1, 0, 17, 2, 12]} +{"sent_id": [4, 12, 5, 6, 9, 1]} +{"sent_id": [0, 1, 2, 4, 10, 6]} +{"sent_id": [0, 3, 6, 5, 4, 2]} +{"sent_id": [1, 0, 2, 5, 3, 10]} +{"sent_id": [3, 1, 0, 2, 5, 6]} +{"sent_id": [2, 5, 4, 1, 6, 9]} +{"sent_id": [3, 4, 1, 6, 2, 5]} +{"sent_id": [1, 3, 14, 2, 4, 13]} +{"sent_id": [1, 5, 0, 2, 11, 13]} +{"sent_id": [3, 2, 7, 4, 9, 11]} +{"sent_id": [11, 2, 3, 7, 1, 8]} +{"sent_id": [1, 0, 6, 2, 5, 7]} +{"sent_id": [1, 2, 4, 8, 6, 7]} +{"sent_id": [1, 10, 2, 4, 3, 11]} +{"sent_id": [5, 6, 16, 4, 1, 0]} +{"sent_id": [4, 1, 11, 5, 2, 3]} +{"sent_id": [10, 8, 1, 5, 2, 9]} +{"sent_id": [2, 4, 3, 12, 0, 1]} +{"sent_id": [2, 3, 6, 1, 4, 7]} +{"sent_id": [3, 5, 6, 4, 7, 9]} +{"sent_id": [1, 6, 0, 7, 2, 4]} +{"sent_id": [1, 2, 4, 5, 3, 0]} +{"sent_id": [4, 12, 1, 0, 11, 5]} +{"sent_id": [3, 1, 2, 4, 5, 14]} +{"sent_id": [2, 0, 3, 6, 7, 5]} +{"sent_id": [1, 2, 7, 11, 3, 4]} +{"sent_id": [0, 3, 5, 4, 1, 2]} +{"sent_id": [2, 4, 6, 1, 9, 8]} +{"sent_id": [3, 1, 2, 4, 5, 8]} +{"sent_id": [19, 5, 0, 14, 3, 18]} +{"sent_id": [1, 5, 4, 6, 9, 0]} +{"sent_id": [2, 1, 6, 0, 4, 3]} +{"sent_id": [5, 4, 1, 2, 3, 12]} +{"sent_id": [0, 12, 3, 2, 1, 11]} +{"sent_id": [0, 1, 6, 3, 2, 10]} +{"sent_id": [4, 15, 5, 0, 3, 14]} +{"sent_id": [1, 0, 4, 6, 3, 2]} +{"sent_id": [3, 5, 1, 10, 0, 2]} +{"sent_id": [3, 2, 0, 1, 7, 11]} +{"sent_id": [0, 4, 2, 11, 3, 10]} +{"sent_id": [3, 0, 2, 9, 6, 10]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [2, 0, 3, 10, 4, 17]} +{"sent_id": [3, 1, 7, 8, 5, 9]} +{"sent_id": [10, 2, 8, 3, 1, 5]} +{"sent_id": [5, 4, 11, 2, 6, 3]} +{"sent_id": [2, 0, 12, 9, 8, 3]} +{"sent_id": [0, 2, 1, 8, 3, 17]} +{"sent_id": [5, 9, 13, 2, 18, 6]} +{"sent_id": [0, 4, 2, 7, 3, 1]} +{"sent_id": [2, 1, 0, 3, 7, 9]} +{"sent_id": [0, 3, 1, 4, 2, 16]} +{"sent_id": [0, 3, 1, 4, 2, 5]} +{"sent_id": [3, 1, 5, 4, 0, 2]} +{"sent_id": [3, 0, 8, 14, 6, 7]} +{"sent_id": [2, 1, 5, 10, 4, 8]} +{"sent_id": [3, 12, 1, 2, 4, 5]} +{"sent_id": [1, 4, 3, 5, 2, 0]} +{"sent_id": [1, 2, 5, 18, 4, 0]} +{"sent_id": [1, 13, 15, 0, 2, 6]} +{"sent_id": [2, 3, 6, 10, 5, 13]} +{"sent_id": [1, 6, 5, 3, 7, 0]} +{"sent_id": [5, 6, 11, 0, 10, 1]} +{"sent_id": [2, 7, 9, 3, 16, 1]} +{"sent_id": [3, 1, 9, 2, 14, 0]} +{"sent_id": [5, 1, 8, 2, 6, 7]} +{"sent_id": [1, 3, 2, 4, 5, 6]} +{"sent_id": [4, 3, 8, 5, 0, 14]} +{"sent_id": [1, 2, 5, 9, 7, 8]} +{"sent_id": [2, 4, 7, 3, 10, 8]} +{"sent_id": [1, 5, 8, 7, 2, 11]} +{"sent_id": [2, 3, 0, 4, 1, 5]} +{"sent_id": [0, 4, 15, 1, 8, 5]} +{"sent_id": [1, 3, 2, 10, 0, 9]} +{"sent_id": [10, 4, 0, 2, 1, 6]} +{"sent_id": [2, 4, 6, 3, 8, 15]} +{"sent_id": [1, 4, 0, 3, 5, 2]} +{"sent_id": [14, 15, 3, 9, 22, 10]} +{"sent_id": [2, 15, 6, 11, 3, 13]} +{"sent_id": [1, 6, 7, 0, 5, 9]} +{"sent_id": [0, 2, 5, 1, 9, 7]} +{"sent_id": [5, 15, 0, 4, 16, 2]} +{"sent_id": [2, 4, 6, 8, 3, 10]} +{"sent_id": [2, 0, 1, 5, 12, 9]} +{"sent_id": [1, 2, 5, 0, 4, 7]} +{"sent_id": [2, 1, 0, 9, 10, 6]} +{"sent_id": [7, 3, 1, 5, 8, 6]} +{"sent_id": [3, 0, 4, 11, 1, 14]} +{"sent_id": [1, 6, 2, 5, 4, 8]} +{"sent_id": [0, 2, 1, 3, 4, 20]} +{"sent_id": [3, 2, 13, 15, 20, 1]} +{"sent_id": [4, 2, 6, 11, 1, 8]} +{"sent_id": [5, 6, 10, 2, 7, 3]} +{"sent_id": [3, 0, 11, 12, 5, 6]} +{"sent_id": [1, 3, 4, 5, 2, 0]} +{"sent_id": [3, 2, 1, 5, 6, 4]} +{"sent_id": [1, 2, 0, 5, 3, 8]} +{"sent_id": [1, 0, 2, 3, 5, 11]} +{"sent_id": [1, 2, 3, 7, 5, 0]} +{"sent_id": [0, 5, 1, 8, 3, 11]} +{"sent_id": [2, 1, 8, 3, 0, 5]} +{"sent_id": [5, 4, 10, 1, 11, 3]} +{"sent_id": [8, 9, 1, 0, 10, 2]} +{"sent_id": [5, 2, 1, 4, 9, 3]} +{"sent_id": [0, 2, 5, 3, 4, 1]} +{"sent_id": [0, 1, 3, 4, 2, 5]} +{"sent_id": [3, 0, 1, 10, 2, 5]} +{"sent_id": [1, 3, 2, 4, 0, 5]} +{"sent_id": [9, 3, 11, 1, 0, 2]} +{"sent_id": [1, 8, 4, 2, 3, 5]} +{"sent_id": [1, 2, 4, 3, 0, 5]} +{"sent_id": [3, 10, 12, 4, 1, 11]} +{"sent_id": [0, 6, 1, 19, 7, 2]} +{"sent_id": [1, 2, 3, 5, 8, 4]} +{"sent_id": [1, 9, 3, 8, 6, 2]} +{"sent_id": [9, 3, 10, 4, 7, 6]} +{"sent_id": [2, 3, 0, 7, 15, 8]} +{"sent_id": [10, 2, 1, 3, 4, 5]} +{"sent_id": [3, 1, 15, 2, 6, 0]} +{"sent_id": [6, 4, 7, 14, 3, 13]} +{"sent_id": [1, 2, 6, 11, 4, 9]} +{"sent_id": [3, 1, 2, 0, 7, 8]} +{"sent_id": [1, 6, 3, 4, 11, 5]} +{"sent_id": [1, 9, 3, 8, 5, 2]} +{"sent_id": [4, 12, 2, 6, 1, 0]} +{"sent_id": [1, 3, 0, 4, 5, 2]} +{"sent_id": [4, 1, 2, 3, 6, 7]} +{"sent_id": [1, 6, 0, 8, 5, 4]} +{"sent_id": [1, 2, 3, 5, 0, 10]} +{"sent_id": [3, 2, 4, 0, 6, 5]} +{"sent_id": [3, 2, 6, 1, 0, 9]} +{"sent_id": [1, 0, 14, 4, 2, 9]} +{"sent_id": [0, 1, 7, 4, 11, 3]} +{"sent_id": [3, 1, 5, 0, 19, 11]} +{"sent_id": [3, 4, 17, 1, 2, 14]} +{"sent_id": [8, 3, 2, 1, 4, 0]} +{"sent_id": [9, 5, 10, 4, 1, 12]} +{"sent_id": [1, 0, 9, 6, 3, 8]} +{"sent_id": [4, 1, 5, 17, 7, 8]} +{"sent_id": [0, 8, 1, 5, 9, 13]} +{"sent_id": [8, 1, 0, 9, 2, 4]} +{"sent_id": [4, 1, 0, 2, 5, 20]} +{"sent_id": [4, 5, 0, 1, 8, 2]} +{"sent_id": [0, 1, 4, 5, 19, 18]} +{"sent_id": [1, 0, 2, 3, 7, 9]} +{"sent_id": [2, 3, 1, 6, 13, 5]} +{"sent_id": [3, 0, 2, 1, 5, 9]} +{"sent_id": [2, 1, 11, 9, 7, 0]} +{"sent_id": [2, 8, 9, 4, 3, 1]} +{"sent_id": [2, 3, 4, 0, 5, 6]} +{"sent_id": [1, 3, 2, 15, 4, 11]} +{"sent_id": [2, 12, 4, 1, 0, 13]} +{"sent_id": [0, 2, 3, 4, 1, 17]} +{"sent_id": [3, 2, 1, 0, 5, 6]} +{"sent_id": [0, 4, 6, 5, 2, 1]} +{"sent_id": [2, 3, 4, 10, 1, 8]} +{"sent_id": [2, 0, 4, 1, 3, 8]} +{"sent_id": [2, 0, 1, 7, 3, 5]} +{"sent_id": [0, 1, 2, 4, 3, 5]} +{"sent_id": [3, 1, 2, 0, 4, 6]} +{"sent_id": [0, 2, 3, 4, 5, 1]} +{"sent_id": [4, 3, 8, 11, 12, 10]} +{"sent_id": [7, 17, 18, 8, 2, 15]} +{"sent_id": [1, 2, 3, 5, 6, 11]} +{"sent_id": [6, 5, 2, 0, 3, 1]} +{"sent_id": [1, 2, 13, 8, 3, 0]} +{"sent_id": [1, 0, 3, 7, 2, 15]} +{"sent_id": [1, 0, 2, 6, 3, 5]} +{"sent_id": [2, 1, 0, 3, 17, 18]} +{"sent_id": [0, 1, 2, 8, 10, 3]} +{"sent_id": [3, 5, 1, 0, 4, 18]} +{"sent_id": [11, 3, 1, 12, 0, 6]} +{"sent_id": [2, 3, 5, 4, 7, 0]} +{"sent_id": [2, 5, 4, 3, 1, 6]} +{"sent_id": [1, 3, 2, 5, 4, 0]} +{"sent_id": [3, 10, 0, 4, 1, 9]} +{"sent_id": [3, 7, 5, 9, 6, 8]} +{"sent_id": [1, 4, 0, 10, 3, 2]} +{"sent_id": [1, 15, 0, 16, 17, 12]} +{"sent_id": [0, 1, 3, 2, 5, 4]} +{"sent_id": [1, 2, 3, 11, 0, 4]} +{"sent_id": [0, 8, 3, 1, 7, 5]} +{"sent_id": [1, 2, 3, 4, 0, 10]} +{"sent_id": [0, 1, 13, 6, 7, 10]} +{"sent_id": [3, 4, 1, 5, 0, 12]} +{"sent_id": [4, 1, 3, 5, 2, 8]} +{"sent_id": [7, 1, 9, 0, 4, 2]} +{"sent_id": [1, 4, 3, 2, 0, 11]} +{"sent_id": [2, 3, 1, 8, 9, 6]} +{"sent_id": [2, 0, 6, 3, 7, 1]} +{"sent_id": [2, 1, 9, 4, 6, 0]} +{"sent_id": [0, 2, 8, 1, 6, 3]} +{"sent_id": [7, 2, 1, 10, 8, 15]} +{"sent_id": [4, 9, 5, 2, 19, 15]} +{"sent_id": [2, 1, 0, 18, 3, 9]} +{"sent_id": [1, 3, 4, 2, 10, 0]} +{"sent_id": [1, 0, 2, 9, 3, 8]} +{"sent_id": [15, 3, 4, 0, 1, 14]} +{"sent_id": [5, 3, 8, 9, 6, 10]} +{"sent_id": [3, 0, 1, 12, 11, 13]} +{"sent_id": [0, 1, 2, 4, 15, 9]} +{"sent_id": [4, 1, 2, 8, 3, 0]} +{"sent_id": [3, 4, 2, 1, 0, 5]} +{"sent_id": [1, 4, 3, 6, 5, 2]} +{"sent_id": [1, 3, 4, 2, 8, 0]} +{"sent_id": [2, 1, 0, 6, 10, 7]} +{"sent_id": [3, 4, 1, 0, 10, 8]} +{"sent_id": [4, 0, 14, 7, 6, 16]} +{"sent_id": [5, 6, 0, 2, 13, 3]} +{"sent_id": [2, 10, 6, 5, 1, 12]} +{"sent_id": [7, 0, 1, 2, 3, 5]} +{"sent_id": [7, 0, 5, 2, 1, 6]} +{"sent_id": [3, 1, 13, 4, 11, 12]} +{"sent_id": [0, 2, 1, 3, 7, 9]} +{"sent_id": [3, 15, 8, 1, 0, 4]} +{"sent_id": [5, 3, 1, 4, 2, 16]} +{"sent_id": [11, 10, 2, 9, 13, 1]} +{"sent_id": [6, 10, 15, 5, 16, 18]} +{"sent_id": [2, 3, 7, 1, 13, 5]} +{"sent_id": [1, 0, 10, 6, 8, 2]} +{"sent_id": [3, 2, 12, 17, 10, 1]} +{"sent_id": [1, 6, 3, 2, 0, 5]} +{"sent_id": [13, 0, 1, 2, 7, 6]} +{"sent_id": [1, 2, 3, 4, 5, 9]} +{"sent_id": [4, 3, 2, 1, 7, 15]} +{"sent_id": [1, 0, 4, 2, 12, 6]} +{"sent_id": [3, 10, 11, 12, 4, 2]} +{"sent_id": [1, 7, 9, 2, 8, 11]} +{"sent_id": [3, 1, 10, 0, 2, 6]} +{"sent_id": [2, 3, 0, 13, 1, 12]} +{"sent_id": [1, 5, 12, 17, 11, 10]} +{"sent_id": [1, 9, 2, 5, 4, 7]} +{"sent_id": [0, 1, 3, 7, 17, 18]} +{"sent_id": [1, 3, 4, 0, 8, 7]} +{"sent_id": [4, 1, 15, 14, 12, 2]} +{"sent_id": [1, 9, 2, 0, 3, 14]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [0, 1, 6, 2, 8, 7]} +{"sent_id": [4, 2, 6, 5, 3, 11]} +{"sent_id": [5, 6, 4, 10, 16, 1]} +{"sent_id": [4, 5, 1, 13, 3, 6]} +{"sent_id": [1, 4, 12, 3, 2, 0]} +{"sent_id": [3, 4, 6, 9, 5, 2]} +{"sent_id": [2, 0, 3, 14, 4, 7]} +{"sent_id": [0, 1, 3, 6, 10, 2]} +{"sent_id": [3, 4, 2, 0, 5, 9]} +{"sent_id": [1, 8, 0, 5, 10, 2]} +{"sent_id": [3, 4, 21, 0, 5, 14]} +{"sent_id": [0, 1, 5, 13, 14, 6]} +{"sent_id": [5, 8, 0, 2, 1, 7]} +{"sent_id": [2, 3, 0, 4, 9, 5]} +{"sent_id": [4, 3, 1, 2, 5, 9]} +{"sent_id": [2, 4, 3, 6, 12, 5]} +{"sent_id": [3, 1, 4, 2, 8, 0]} +{"sent_id": [4, 5, 13, 0, 1, 2]} +{"sent_id": [3, 2, 12, 10, 4, 15]} +{"sent_id": [1, 3, 7, 4, 6, 5]} +{"sent_id": [9, 0, 11, 10, 8, 1]} +{"sent_id": [2, 4, 3, 8, 0, 5]} +{"sent_id": [3, 20, 2, 1, 0, 19]} +{"sent_id": [4, 3, 2, 0, 1, 13]} +{"sent_id": [13, 2, 0, 5, 4, 9]} +{"sent_id": [1, 5, 7, 6, 15, 0]} +{"sent_id": [1, 0, 2, 3, 9, 6]} +{"sent_id": [3, 1, 9, 2, 8, 5]} +{"sent_id": [2, 1, 0, 3, 10, 8]} +{"sent_id": [5, 6, 14, 4, 8, 7]} +{"sent_id": [3, 8, 0, 2, 1, 9]} +{"sent_id": [1, 2, 9, 4, 3, 5]} +{"sent_id": [4, 1, 10, 0, 5, 9]} +{"sent_id": [3, 1, 4, 0, 7, 2]} +{"sent_id": [4, 0, 1, 11, 8, 6]} +{"sent_id": [1, 2, 6, 0, 5, 9]} +{"sent_id": [0, 5, 6, 7, 1, 22]} +{"sent_id": [3, 2, 4, 8, 5, 1]} +{"sent_id": [1, 2, 4, 3, 0, 5]} +{"sent_id": [5, 8, 1, 7, 0, 6]} +{"sent_id": [3, 1, 2, 4, 0, 7]} +{"sent_id": [1, 3, 2, 8, 4, 6]} +{"sent_id": [3, 0, 1, 7, 2, 6]} +{"sent_id": [1, 0, 2, 4, 3]} +{"sent_id": [1, 13, 2, 14, 3, 10]} +{"sent_id": [8, 1, 3, 2, 4, 13]} +{"sent_id": [1, 4, 5, 7, 0, 8]} +{"sent_id": [2, 4, 1, 5, 9, 3]} +{"sent_id": [7, 2, 4, 10, 5, 15]} +{"sent_id": [0, 5, 1, 12, 17, 6]} +{"sent_id": [3, 10, 1, 2, 7, 0]} +{"sent_id": [0, 4, 9, 2, 3, 6]} +{"sent_id": [8, 2, 9, 3, 1, 4]} +{"sent_id": [3, 13, 4, 0, 5, 9]} +{"sent_id": [1, 12, 0, 7, 2, 3]} +{"sent_id": [1, 15, 7, 2, 0, 6]} +{"sent_id": [1, 3, 0, 4, 9, 2]} +{"sent_id": [1, 2, 11, 6, 4, 7]} +{"sent_id": [4, 3, 2, 1, 6, 0]} +{"sent_id": [3, 1, 10, 4, 2, 0]} +{"sent_id": [2, 1, 0, 11, 17, 5]} +{"sent_id": [3, 15, 1, 6, 0, 8]} +{"sent_id": [3, 2, 1, 4, 6, 5]} +{"sent_id": [0, 8, 4, 1, 5, 9]} +{"sent_id": [3, 0, 8, 5, 2, 9]} +{"sent_id": [3, 13, 2, 5, 4, 1]} +{"sent_id": [4, 8, 2, 9, 16, 14]} +{"sent_id": [1, 4, 5, 2, 7, 6]} +{"sent_id": [1, 0, 3, 12, 2, 19]} +{"sent_id": [3, 4, 5, 1, 0, 10]} +{"sent_id": [0, 15, 2, 14, 16, 3]} +{"sent_id": [2, 6, 1, 10, 7, 9]} +{"sent_id": [1, 2, 5, 8, 7, 6]} +{"sent_id": [4, 13, 3, 7, 2, 1]} +{"sent_id": [1, 2, 10, 3, 6, 4]} +{"sent_id": [1, 2, 3, 6, 4, 17]} +{"sent_id": [1, 2, 5, 10, 4, 8]} +{"sent_id": [4, 3, 0, 1, 2, 5]} +{"sent_id": [0, 4, 5, 3, 1, 6]} +{"sent_id": [2, 1, 3, 0, 4, 9]} +{"sent_id": [3, 1, 2, 15, 8, 4]} +{"sent_id": [0, 5, 9, 1, 7, 13]} +{"sent_id": [0, 2, 1, 6, 4, 15]} +{"sent_id": [1, 2, 3, 0, 4, 7]} +{"sent_id": [3, 2, 16, 13, 1, 5]} +{"sent_id": [3, 1, 2, 6, 8, 4]} +{"sent_id": [9, 8, 7, 12, 11, 2]} +{"sent_id": [0, 3, 1, 2, 5, 12]} +{"sent_id": [6, 13, 5, 7, 10, 4]} +{"sent_id": [2, 19, 4, 8, 12, 18]} +{"sent_id": [2, 3, 10, 11, 1, 22]} +{"sent_id": [5, 3, 6, 11, 2, 24]} +{"sent_id": [13, 4, 1, 3, 15, 0]} +{"sent_id": [0, 3, 2, 1, 5, 6]} +{"sent_id": [4, 1, 10, 2, 3, 11]} +{"sent_id": [0, 3, 2, 8, 9, 1]} +{"sent_id": [2, 1, 5, 4, 3, 15]} +{"sent_id": [11, 0, 2, 15, 1, 7]} +{"sent_id": [10, 3, 1, 12, 0, 2]} +{"sent_id": [2, 7, 3, 5, 1, 11]} +{"sent_id": [5, 1, 14, 6, 7, 15]} +{"sent_id": [0, 9, 1, 4, 3, 2]} +{"sent_id": [5, 7, 3, 15, 0, 16]} +{"sent_id": [4, 6, 5, 3, 14, 15]} +{"sent_id": [1, 4, 2, 8, 6, 15]} +{"sent_id": [16, 4, 1, 3, 7, 11]} +{"sent_id": [3, 1, 4, 0, 20, 5]} +{"sent_id": [1, 2, 3, 9, 7, 4]} +{"sent_id": [1, 3, 11, 5, 7, 0]} +{"sent_id": [1, 3, 6, 7, 2, 0]} +{"sent_id": [2, 1, 12, 14, 5, 6]} +{"sent_id": [1, 2, 3, 4, 0, 8]} +{"sent_id": [0, 5, 7, 12, 15, 11]} +{"sent_id": [1, 2, 4, 3, 6, 5]} +{"sent_id": [3, 2, 1, 0, 4, 13]} +{"sent_id": [3, 9, 4, 11, 7, 6]} +{"sent_id": [10, 15, 3, 2, 8, 21]} +{"sent_id": [0, 4, 10, 16, 1, 3]} +{"sent_id": [14, 5, 3, 2, 4, 6]} +{"sent_id": [1, 3, 4, 2, 6, 14]} +{"sent_id": [7, 1, 2, 8, 5, 3]} +{"sent_id": [12, 3, 5, 1, 6, 10]} +{"sent_id": [1, 2, 7, 6, 16, 9]} +{"sent_id": [3, 1, 9, 2, 0, 13]} +{"sent_id": [1, 3, 12, 2, 6, 13]} +{"sent_id": [1, 0, 5, 2, 4, 3]} +{"sent_id": [0, 8, 2, 1, 7, 12]} +{"sent_id": [1, 2, 4, 5, 12, 3]} +{"sent_id": [2, 1, 8, 14, 5, 10]} +{"sent_id": [3, 1, 2, 7, 0, 8]} +{"sent_id": [3, 2, 8, 12, 7, 4]} +{"sent_id": [3, 2, 1, 0, 7, 8]} +{"sent_id": [2, 3, 9, 1, 14, 6]} +{"sent_id": [1, 15, 2, 5, 3, 16]} +{"sent_id": [2, 3, 12, 0, 10, 9]} +{"sent_id": [3, 1, 2, 4, 7, 5]} +{"sent_id": [2, 0, 5, 3, 1, 4]} +{"sent_id": [1, 11, 2, 0, 12, 7]} +{"sent_id": [5, 3, 1, 7, 13, 14]} +{"sent_id": [1, 3, 2, 4, 15, 10]} +{"sent_id": [3, 4, 6, 5, 8, 2]} +{"sent_id": [5, 4, 3, 1, 0, 2]} +{"sent_id": [1, 5, 4, 0, 2, 13]} +{"sent_id": [1, 3, 0, 2, 6, 5]} +{"sent_id": [1, 3, 4, 2, 9, 7]} +{"sent_id": [2, 0, 1, 16, 8, 6]} +{"sent_id": [2, 1, 16, 6, 4, 0]} +{"sent_id": [1, 2, 5, 8, 13, 10]} +{"sent_id": [5, 1, 4, 9, 0, 2]} +{"sent_id": [1, 0, 3, 5, 2, 4]} +{"sent_id": [1, 2, 4, 6, 5, 7]} +{"sent_id": [0, 1, 3, 2, 6, 4]} +{"sent_id": [4, 2, 5, 1, 3, 6]} +{"sent_id": [0, 7, 12, 15, 2, 18]} +{"sent_id": [3, 13, 0, 1, 12, 2]} +{"sent_id": [0, 5, 14, 2, 13, 12]} +{"sent_id": [1, 2, 11, 4, 21, 3]} +{"sent_id": [1, 7, 2, 0, 4, 13]} +{"sent_id": [1, 8, 9, 2, 10, 4]} +{"sent_id": [1, 2, 3, 15, 20, 5]} +{"sent_id": [1, 0, 2, 8, 5, 4]} +{"sent_id": [4, 3, 12, 2, 0, 5]} +{"sent_id": [0, 1, 8, 2, 6, 12]} +{"sent_id": [1, 2, 13, 5, 0, 8]} +{"sent_id": [2, 1, 3, 13, 14, 0]} +{"sent_id": [3, 1, 2, 6, 8, 7]} +{"sent_id": [2, 0, 3, 6, 4, 1]} +{"sent_id": [16, 0, 1, 2, 12, 17]} +{"sent_id": [5, 1, 6, 9, 2, 11]} +{"sent_id": [0, 2, 1, 5, 6, 10]} +{"sent_id": [0, 5, 4, 2, 11, 6]} +{"sent_id": [2, 1, 3, 4, 0, 11]} +{"sent_id": [3, 4, 1, 2, 0, 11]} +{"sent_id": [4, 0, 2, 5, 7, 11]} +{"sent_id": [3, 9, 10, 8, 4, 11]} +{"sent_id": [1, 9, 10, 6, 5, 8]} +{"sent_id": [1, 0, 2, 3, 4, 7]} +{"sent_id": [1, 2, 3, 8, 10, 15]} +{"sent_id": [3, 2, 1, 9, 5, 4]} +{"sent_id": [4, 1, 0, 7, 18, 2]} +{"sent_id": [3, 4, 12, 0, 5, 7]} +{"sent_id": [2, 3, 1, 0, 9, 5]} +{"sent_id": [0, 7, 3, 12, 1, 2]} +{"sent_id": [2, 0, 7, 1, 8, 4]} +{"sent_id": [3, 1, 14, 2, 7, 8]} +{"sent_id": [1, 2, 4, 5, 0, 13]} +{"sent_id": [0, 12, 4, 15, 3, 1]} +{"sent_id": [2, 1, 3, 0, 16, 5]} +{"sent_id": [1, 2, 3, 5, 4, 6]} +{"sent_id": [3, 5, 7, 6, 10, 1]} +{"sent_id": [2, 1, 3, 11, 12, 0]} +{"sent_id": [3, 4, 0, 1, 6, 5]} +{"sent_id": [3, 0, 8, 2, 1, 12]} +{"sent_id": [2, 5, 1, 4, 6, 7]} +{"sent_id": [1, 9, 13, 4, 8, 3]} +{"sent_id": [2, 5, 3, 7, 6, 4]} +{"sent_id": [1, 2, 4, 3, 13, 12]} +{"sent_id": [2, 3, 16, 11, 6, 10]} +{"sent_id": [3, 2, 1, 0, 8, 5]} +{"sent_id": [5, 4, 2, 0, 11, 3]} +{"sent_id": [2, 1, 8, 4, 3, 0]} +{"sent_id": [2, 0, 6, 4, 1, 22]} +{"sent_id": [1, 2, 4, 11, 8, 7]} +{"sent_id": [1, 6, 0, 2, 16, 7]} +{"sent_id": [4, 1, 5, 0, 3, 2]} +{"sent_id": [0, 7, 1, 3, 5, 2]} +{"sent_id": [10, 3, 11, 0, 4, 2]} +{"sent_id": [1, 6, 17, 5, 2, 7]} +{"sent_id": [1, 6, 3, 5, 2, 4]} +{"sent_id": [4, 0, 1, 12, 5, 8]} +{"sent_id": [0, 2, 4, 6, 3, 5]} +{"sent_id": [6, 4, 9, 7, 8, 1]} +{"sent_id": [2, 3, 4, 0, 1, 10]} +{"sent_id": [1, 2, 3, 4, 8, 5]} +{"sent_id": [13, 6, 2, 4, 1, 5]} +{"sent_id": [11, 5, 2, 0, 1, 3]} +{"sent_id": [1, 5, 2, 3, 0, 6]} +{"sent_id": [4, 2, 3, 7, 6, 16]} +{"sent_id": [4, 3, 0, 5, 1, 2]} +{"sent_id": [0, 1, 10, 5, 4, 2]} +{"sent_id": [1, 2, 3, 4, 5, 8]} +{"sent_id": [4, 1, 10, 5, 0, 8]} +{"sent_id": [0, 2, 3, 1, 5, 4]} +{"sent_id": [2, 5, 3, 10, 13, 18]} +{"sent_id": [0, 2, 1, 5, 6, 8]} +{"sent_id": [1, 6, 7, 0, 2, 3]} +{"sent_id": [1, 3, 4, 2, 5, 0]} +{"sent_id": [1, 13, 0, 4, 12, 6]} +{"sent_id": [1, 2, 11, 4, 0, 3]} +{"sent_id": [1, 2, 0, 4, 5, 12]} +{"sent_id": [1, 5, 11, 6, 2, 3]} +{"sent_id": [6, 0, 9, 1, 5, 8]} +{"sent_id": [3, 1, 2, 0, 10, 5]} +{"sent_id": [1, 3, 6, 2, 0, 4]} +{"sent_id": [1, 5, 0, 7, 2, 3]} +{"sent_id": [8, 0, 1, 7, 3, 5]} +{"sent_id": [2, 1, 0, 9, 3, 7]} +{"sent_id": [1, 4, 2, 17, 8, 3]} +{"sent_id": [4, 6, 1, 12, 0, 5]} +{"sent_id": [1, 2, 4, 3, 0, 10]} +{"sent_id": [4, 13, 6, 0, 3, 14]} +{"sent_id": [10, 9, 11, 1, 0, 12]} +{"sent_id": [5, 0, 3, 4, 2, 6]} +{"sent_id": [3, 11, 12, 0, 1, 5]} +{"sent_id": [1, 2, 0, 3, 4, 8]} +{"sent_id": [11, 7, 1, 3, 12, 5]} +{"sent_id": [1, 2, 3, 5, 8, 6]} +{"sent_id": [3, 1, 2, 0, 6, 4]} +{"sent_id": [4, 9, 7, 8, 1, 12]} +{"sent_id": [3, 2, 7, 1, 6, 8]} +{"sent_id": [2, 7, 1, 0, 4, 6]} +{"sent_id": [1, 2, 5, 3, 7, 4]} +{"sent_id": [2, 1, 8, 4, 0, 3]} +{"sent_id": [1, 2, 0, 9, 3, 13]} +{"sent_id": [0, 6, 15, 1, 7, 8]} +{"sent_id": [1, 3, 0, 4, 2, 6]} +{"sent_id": [4, 13, 2, 5, 12, 15]} +{"sent_id": [2, 1, 3, 4, 5, 0]} +{"sent_id": [1, 6, 5, 2, 4, 3]} +{"sent_id": [3, 4, 1, 2, 11, 5]} +{"sent_id": [1, 0, 4, 11, 5, 15]} +{"sent_id": [1, 9, 3, 8, 5, 17]} +{"sent_id": [1, 3, 2, 7, 0, 6]} +{"sent_id": [0, 2, 4, 1, 5, 8]} +{"sent_id": [9, 5, 11, 0, 3, 13]} +{"sent_id": [1, 3, 2, 5, 6, 4]} +{"sent_id": [4, 3, 0, 10, 5, 12]} +{"sent_id": [1, 2, 6, 7, 4, 3]} +{"sent_id": [2, 4, 5, 6, 7, 12]} +{"sent_id": [7, 2, 3, 4, 5, 8]} +{"sent_id": [1, 4, 0, 2, 9, 3]} +{"sent_id": [4, 11, 0, 1, 2, 6]} +{"sent_id": [0, 1, 8, 2, 6, 13]} +{"sent_id": [0, 9, 2, 6, 7, 5]} +{"sent_id": [2, 1, 0, 13, 14, 5]} +{"sent_id": [10, 1, 9, 4, 3, 6]} +{"sent_id": [2, 1, 9, 3, 10, 5]} +{"sent_id": [4, 1, 3, 6, 8, 2]} +{"sent_id": [13, 9, 6, 10, 1, 7]} +{"sent_id": [2, 0, 1, 3, 4, 5]} +{"sent_id": [3, 1, 2, 5, 4, 15]} +{"sent_id": [3, 1, 5, 2, 11, 4]} +{"sent_id": [3, 1, 2, 14, 5, 4]} +{"sent_id": [1, 3, 4, 10, 0, 13]} +{"sent_id": [1, 6, 4, 3, 2, 8]} +{"sent_id": [1, 2, 0, 4, 5, 9]} +{"sent_id": [1, 2, 5, 7, 0, 12]} +{"sent_id": [0, 3, 1, 6, 2, 7]} +{"sent_id": [1, 0, 4, 3, 2, 7]} +{"sent_id": [1, 11, 7, 5, 2, 9]} +{"sent_id": [1, 8, 4, 14, 10, 2]} +{"sent_id": [4, 2, 3, 16, 5, 0]} +{"sent_id": [1, 2, 5, 6, 0, 10]} +{"sent_id": [3, 4, 5, 6, 8, 7]} +{"sent_id": [2, 3, 4, 1, 13, 5]} +{"sent_id": [13, 1, 4, 2, 12, 9]} +{"sent_id": [0, 3, 2, 15, 1, 14]} +{"sent_id": [7, 6, 9, 8, 2, 4]} +{"sent_id": [0, 2, 1, 4, 14, 5]} +{"sent_id": [3, 1, 4, 2, 8, 6]} +{"sent_id": [0, 1, 3, 6, 4, 13]} +{"sent_id": [2, 5, 3, 4, 12, 8]} +{"sent_id": [1, 0, 2, 8, 7, 4]} +{"sent_id": [1, 2, 10, 0, 4, 7]} +{"sent_id": [4, 1, 5, 2, 18, 3]} +{"sent_id": [3, 0, 1, 2, 4, 5]} +{"sent_id": [0, 3, 1, 8, 12, 4]} +{"sent_id": [0, 1, 5, 2, 9, 3]} +{"sent_id": [2, 5, 1, 8, 7, 6]} +{"sent_id": [0, 4, 3, 11, 1, 10]} +{"sent_id": [3, 0, 12, 1, 10, 2]} +{"sent_id": [1, 3, 2, 8, 5, 0]} +{"sent_id": [1, 0, 2, 14, 4, 10]} +{"sent_id": [2, 1, 4, 5, 0, 11]} +{"sent_id": [8, 6, 9, 10, 11, 2]} +{"sent_id": [9, 3, 4, 1, 10, 2]} +{"sent_id": [3, 4, 2, 5, 9, 1]} +{"sent_id": [4, 11, 5, 2, 0, 8]} +{"sent_id": [4, 8, 6, 7, 3, 5]} +{"sent_id": [0, 3, 5, 1, 12, 2]} +{"sent_id": [1, 6, 2, 0, 5, 4]} +{"sent_id": [3, 1, 2, 12, 9, 6]} +{"sent_id": [3, 14, 0, 2, 4, 9]} +{"sent_id": [4, 1, 10, 0, 2, 8]} +{"sent_id": [1, 6, 0, 2, 9, 10]} +{"sent_id": [2, 4, 16, 8, 7, 6]} +{"sent_id": [15, 3, 17, 2, 0, 14]} +{"sent_id": [4, 5, 0, 17, 2, 3]} +{"sent_id": [3, 4, 5, 1, 2, 7]} +{"sent_id": [1, 9, 11, 0, 2, 8]} +{"sent_id": [3, 10, 9, 2, 1, 6]} +{"sent_id": [9, 1, 3, 4, 15, 0]} +{"sent_id": [3, 2, 4, 5, 14, 6]} +{"sent_id": [3, 1, 11, 2, 12, 6]} +{"sent_id": [15, 3, 4, 5, 11, 7]} +{"sent_id": [2, 3, 4, 6, 18, 0]} +{"sent_id": [4, 1, 8, 6, 2, 9]} +{"sent_id": [3, 2, 1, 5, 7, 11]} +{"sent_id": [0, 1, 4, 8, 12, 16]} +{"sent_id": [3, 1, 2, 10, 0, 4]} +{"sent_id": [3, 2, 4, 1, 0, 8]} +{"sent_id": [3, 1, 18, 12, 0, 11]} +{"sent_id": [2, 11, 1, 0, 4, 3]} +{"sent_id": [1, 2, 5, 0, 7, 4]} +{"sent_id": [2, 3, 0, 1, 9, 4]} +{"sent_id": [1, 2, 5, 3, 4, 11]} +{"sent_id": [3, 4, 0, 2, 10, 5]} +{"sent_id": [2, 1, 0, 5, 9, 10]} +{"sent_id": [2, 1, 4, 5, 8, 3]} +{"sent_id": [0, 4, 1, 3, 20, 15]} +{"sent_id": [1, 3, 13, 4, 0, 5]} +{"sent_id": [1, 2, 4, 0, 6, 9]} +{"sent_id": [1, 0, 2, 7, 6, 3]} +{"sent_id": [3, 2, 1, 0, 4, 10]} +{"sent_id": [1, 0, 2, 3, 6, 12]} +{"sent_id": [1, 2, 6, 13, 7, 12]} +{"sent_id": [6, 1, 9, 0, 10, 2]} +{"sent_id": [3, 4, 12, 0, 2, 9]} +{"sent_id": [3, 2, 10, 1, 0, 11]} +{"sent_id": [5, 3, 14, 1, 4, 2]} +{"sent_id": [6, 7, 8, 5, 14, 0]} +{"sent_id": [2, 3, 5, 4, 6, 1]} +{"sent_id": [2, 1, 4, 3, 0, 6]} +{"sent_id": [0, 1, 16, 10, 2, 3]} +{"sent_id": [3, 0, 2, 4, 13, 14]} +{"sent_id": [14, 15, 3, 2, 0, 4]} +{"sent_id": [3, 2, 4, 10, 5, 1]} +{"sent_id": [3, 0, 13, 4, 5, 1]} +{"sent_id": [1, 3, 13, 2, 5, 0]} +{"sent_id": [2, 1, 3, 10, 12, 11]} +{"sent_id": [1, 0, 2, 10, 4, 9]} +{"sent_id": [1, 0, 2, 7, 4, 9]} +{"sent_id": [9, 1, 0, 13, 3, 5]} +{"sent_id": [0, 4, 12, 2, 3, 13]} +{"sent_id": [4, 7, 1, 5, 3, 6]} +{"sent_id": [0, 5, 4, 1, 6, 2]} +{"sent_id": [5, 4, 8, 1, 9, 18]} +{"sent_id": [2, 7, 8, 6, 4, 5]} +{"sent_id": [3, 0, 1, 2, 11, 5]} +{"sent_id": [2, 4, 0, 9, 3, 5]} +{"sent_id": [0, 1, 2, 4, 8, 12]} +{"sent_id": [4, 3, 10, 0, 1, 6]} +{"sent_id": [3, 4, 0, 8, 2, 11]} +{"sent_id": [1, 2, 0, 3, 10, 12]} +{"sent_id": [2, 1, 3, 0, 8, 7]} +{"sent_id": [3, 8, 4, 2, 0, 1]} +{"sent_id": [0, 3, 1, 8, 2, 4]} +{"sent_id": [5, 0, 1, 2, 18, 7]} +{"sent_id": [0, 8, 10, 5, 2, 6]} +{"sent_id": [2, 4, 0, 3, 5, 1]} +{"sent_id": [4, 2, 0, 20, 3, 8]} +{"sent_id": [3, 1, 4, 2, 5, 0]} +{"sent_id": [3, 9, 1, 13, 4, 2]} +{"sent_id": [3, 0, 13, 9, 12, 7]} +{"sent_id": [0, 1, 2, 4, 5, 12]} +{"sent_id": [3, 1, 18, 15, 2, 5]} +{"sent_id": [2, 5, 3, 4, 6, 1]} +{"sent_id": [2, 3, 6, 1, 0, 7]} +{"sent_id": [1, 0, 5, 2, 3, 7]} +{"sent_id": [3, 8, 12, 5, 4, 0]} +{"sent_id": [4, 0, 3, 13, 1, 5]} +{"sent_id": [1, 4, 2, 3, 6, 11]} +{"sent_id": [1, 7, 2, 0, 10, 3]} +{"sent_id": [2, 3, 4, 0, 14, 6]} +{"sent_id": [1, 13, 14, 16, 4, 3]} +{"sent_id": [3, 20, 10, 11, 1, 9]} +{"sent_id": [0, 4, 3, 1, 11, 12]} +{"sent_id": [3, 1, 0, 6, 10, 7]} +{"sent_id": [3, 4, 11, 8, 0, 1]} +{"sent_id": [1, 5, 2, 3, 11, 6]} +{"sent_id": [3, 1, 10, 2, 5, 0]} +{"sent_id": [1, 2, 13, 4, 3, 15]} +{"sent_id": [0, 4, 12, 1, 9, 7]} +{"sent_id": [2, 3, 5, 0, 6, 4]} +{"sent_id": [0, 2, 1, 10, 3, 4]} +{"sent_id": [4, 9, 7, 1, 3, 8]} +{"sent_id": [1, 4, 5, 2, 9, 3]} +{"sent_id": [3, 2, 1, 4, 5, 6]} +{"sent_id": [5, 6, 7, 15, 17, 22]} +{"sent_id": [2, 1, 11, 0, 7, 12]} +{"sent_id": [2, 4, 1, 5, 0, 6]} +{"sent_id": [1, 3, 4, 5, 2, 0]} +{"sent_id": [3, 1, 0, 2, 8, 11]} +{"sent_id": [1, 2, 8, 5, 0, 4]} +{"sent_id": [3, 7, 2, 6, 5, 4]} +{"sent_id": [1, 2, 0, 6, 7, 10]} +{"sent_id": [3, 4, 6, 10, 8, 2]} +{"sent_id": [1, 2, 8, 7, 3, 4]} +{"sent_id": [4, 3, 7, 2, 5, 11]} +{"sent_id": [4, 3, 1, 5, 2, 0]} +{"sent_id": [4, 2, 11, 3, 1, 10]} +{"sent_id": [2, 1, 3, 5, 11, 4]} +{"sent_id": [3, 4, 9, 0, 1, 2]} +{"sent_id": [4, 15, 2, 5, 16, 1]} +{"sent_id": [3, 1, 7, 12, 4, 0]} +{"sent_id": [9, 1, 14, 16, 5, 11]} +{"sent_id": [1, 2, 7, 0, 11, 9]} +{"sent_id": [0, 11, 3, 4, 1, 2]} +{"sent_id": [4, 19, 5, 12, 6, 18]} +{"sent_id": [3, 1, 4, 0, 2, 9]} +{"sent_id": [1, 2, 7, 6, 9, 5]} +{"sent_id": [9, 1, 0, 8, 6, 3]} +{"sent_id": [2, 3, 1, 0, 11, 5]} +{"sent_id": [3, 0, 1, 2, 4, 7]} +{"sent_id": [9, 3, 4, 1, 0, 5]} +{"sent_id": [1, 3, 5, 2, 11, 6]} +{"sent_id": [15, 11, 8, 0, 1, 4]} +{"sent_id": [1, 2, 3, 4, 9, 6]} +{"sent_id": [6, 2, 1, 0, 3, 5]} +{"sent_id": [1, 2, 3, 0, 10, 9]} +{"sent_id": [3, 2, 1, 9, 0, 4]} +{"sent_id": [2, 9, 3, 0, 14, 7]} +{"sent_id": [0, 1, 2, 12, 17, 11]} +{"sent_id": [3, 2, 5, 1, 0, 4]} +{"sent_id": [1, 4, 0, 3, 2, 15]} +{"sent_id": [0, 9, 2, 3, 1, 7]} +{"sent_id": [2, 1, 5, 10, 6, 11]} +{"sent_id": [3, 0, 2, 1, 11, 4]} +{"sent_id": [5, 0, 1, 2, 4, 7]} +{"sent_id": [0, 7, 3, 5, 9, 1]} +{"sent_id": [2, 3, 1, 11, 4, 5]} +{"sent_id": [1, 0, 8, 2, 13, 15]} +{"sent_id": [1, 2, 11, 7, 12, 9]} +{"sent_id": [2, 1, 0, 5, 6, 11]} +{"sent_id": [1, 2, 7, 6, 8, 3]} +{"sent_id": [0, 3, 11, 12, 13, 7]} +{"sent_id": [2, 3, 4, 6, 0, 5]} +{"sent_id": [1, 2, 4, 5, 10, 9]} +{"sent_id": [3, 5, 0, 1, 4, 10]} +{"sent_id": [0, 1, 4, 8, 3, 10]} +{"sent_id": [3, 1, 7, 6, 2, 13]} +{"sent_id": [0, 4, 12, 6, 1, 2]} +{"sent_id": [1, 2, 9, 0, 4, 5]} +{"sent_id": [2, 3, 4, 5, 0, 16]} +{"sent_id": [1, 5, 2, 3, 4, 0]} +{"sent_id": [6, 1, 7, 0, 13, 8]} +{"sent_id": [0, 5, 3, 4, 2, 7]} +{"sent_id": [0, 5, 14, 13, 2, 6]} +{"sent_id": [3, 4, 5, 7, 16, 6]} +{"sent_id": [15, 16, 3, 0, 5, 4]} +{"sent_id": [1, 3, 5, 4, 2, 6]} +{"sent_id": [3, 4, 8, 2, 1, 6]} +{"sent_id": [3, 1, 0, 2, 5, 6]} +{"sent_id": [4, 1, 5, 6, 17, 18]} +{"sent_id": [4, 2, 16, 1, 0, 3]} +{"sent_id": [2, 4, 1, 3, 7, 5]} +{"sent_id": [2, 3, 0, 1, 15, 8]} +{"sent_id": [2, 3, 4, 0, 17, 6]} +{"sent_id": [3, 5, 0, 2, 1, 6]} +{"sent_id": [3, 0, 11, 4, 1, 12]} +{"sent_id": [1, 2, 22, 5, 10, 11]} +{"sent_id": [5, 4, 3, 2, 11, 6]} +{"sent_id": [3, 2, 14, 15, 1, 0]} +{"sent_id": [0, 1, 6, 3, 8, 4]} +{"sent_id": [4, 1, 3, 7, 2, 16]} +{"sent_id": [3, 17, 4, 1, 16, 0]} +{"sent_id": [3, 2, 9, 13, 17, 1]} +{"sent_id": [3, 1, 10, 2, 4, 12]} +{"sent_id": [3, 4, 7, 6, 1, 9]} +{"sent_id": [0, 2, 7, 5, 6, 9]} +{"sent_id": [1, 2, 5, 4, 10, 6]} +{"sent_id": [3, 4, 0, 6, 1, 2]} +{"sent_id": [7, 3, 1, 0, 4, 2]} +{"sent_id": [1, 3, 5, 2, 4, 12]} +{"sent_id": [2, 1, 5, 9, 4, 3]} +{"sent_id": [3, 2, 20, 7, 1, 8]} +{"sent_id": [2, 3, 1, 6, 7, 8]} +{"sent_id": [2, 3, 0, 6, 5, 1]} +{"sent_id": [4, 5, 0, 7, 6, 9]} +{"sent_id": [1, 11, 5, 2, 3, 0]} +{"sent_id": [3, 2, 15, 4, 6, 7]} +{"sent_id": [1, 0, 11, 2, 14, 6]} +{"sent_id": [1, 2, 4, 12, 3, 8]} +{"sent_id": [0, 6, 4, 18, 3, 5]} +{"sent_id": [2, 1, 4, 3, 0, 5]} +{"sent_id": [0, 8, 16, 1, 2, 18]} +{"sent_id": [4, 5, 16, 6, 13, 0]} +{"sent_id": [4, 5, 0, 11, 1, 16]} +{"sent_id": [1, 3, 0, 4, 9, 2]} +{"sent_id": [1, 2, 8, 0, 6, 7]} +{"sent_id": [3, 12, 2, 5, 1, 13]} +{"sent_id": [2, 1, 10, 3, 0, 12]} +{"sent_id": [0, 1, 3, 2, 12, 13]} +{"sent_id": [2, 1, 0, 4, 5, 3]} +{"sent_id": [3, 2, 4, 9, 10, 0]} +{"sent_id": [1, 5, 2, 0, 6, 8]} +{"sent_id": [1, 2, 15, 5, 4, 3]} +{"sent_id": [4, 6, 10, 14, 16, 15]} +{"sent_id": [3, 2, 1, 4, 6, 5]} +{"sent_id": [3, 11, 1, 0, 2, 17]} +{"sent_id": [3, 4, 8, 6, 1, 2]} +{"sent_id": [4, 2, 3, 1, 10, 5]} +{"sent_id": [0, 1, 2, 10, 7, 5]} +{"sent_id": [4, 3, 2, 1, 0, 5]} +{"sent_id": [0, 4, 2, 3, 9, 7]} +{"sent_id": [1, 2, 10, 8, 11, 9]} +{"sent_id": [3, 1, 0, 9, 6, 5]} +{"sent_id": [2, 0, 3, 16, 10, 9]} +{"sent_id": [1, 3, 2, 4, 12, 11]} +{"sent_id": [0, 8, 1, 11, 2, 6]} +{"sent_id": [0, 3, 4, 11, 1, 2]} +{"sent_id": [1, 2, 8, 3, 4, 5]} +{"sent_id": [3, 1, 8, 4, 2, 0]} +{"sent_id": [10, 6, 14, 4, 5, 3]} +{"sent_id": [3, 5, 0, 6, 2, 4]} +{"sent_id": [7, 8, 12, 18, 11, 16]} +{"sent_id": [1, 3, 4, 5, 2, 0]} +{"sent_id": [0, 2, 5, 11, 3, 4]} +{"sent_id": [1, 0, 6, 2, 15, 8]} +{"sent_id": [0, 1, 9, 10, 2, 11]} +{"sent_id": [5, 16, 7, 4, 18, 6]} +{"sent_id": [1, 3, 2, 6, 13, 4]} +{"sent_id": [3, 1, 11, 0, 2, 4]} +{"sent_id": [3, 0, 12, 1, 2, 13]} +{"sent_id": [3, 4, 1, 0, 12, 7]} +{"sent_id": [1, 7, 2, 9, 0, 3]} +{"sent_id": [3, 2, 1, 8, 10, 4]} +{"sent_id": [16, 0, 3, 2, 4, 1]} +{"sent_id": [3, 4, 18, 6, 17, 7]} +{"sent_id": [2, 1, 4, 6, 8, 0]} +{"sent_id": [3, 2, 1, 4, 0, 10]} +{"sent_id": [4, 1, 5, 2, 3, 0]} +{"sent_id": [3, 1, 11, 16, 12, 5]} +{"sent_id": [1, 6, 2, 4, 9, 0]} +{"sent_id": [1, 3, 2, 6, 4, 10]} +{"sent_id": [3, 4, 5, 0, 6, 13]} +{"sent_id": [5, 1, 0, 6, 4, 12]} +{"sent_id": [0, 2, 3, 1, 5, 6]} +{"sent_id": [3, 2, 5, 0, 1, 7]} +{"sent_id": [5, 3, 1, 0, 4, 7]} +{"sent_id": [6, 0, 3, 11, 5, 4]} +{"sent_id": [0, 2, 1, 8, 4, 10]} +{"sent_id": [0, 3, 10, 12, 6, 8]} +{"sent_id": [6, 4, 3, 2, 5, 17]} +{"sent_id": [4, 2, 18, 3, 1, 6]} +{"sent_id": [4, 3, 1, 2, 0, 5]} +{"sent_id": [1, 2, 4, 5, 0, 7]} +{"sent_id": [1, 2, 11, 3, 8, 4]} +{"sent_id": [3, 5, 1, 0, 2, 9]} +{"sent_id": [1, 5, 2, 4, 13, 17]} +{"sent_id": [1, 4, 5, 2, 3, 6]} +{"sent_id": [5, 2, 17, 7, 1, 6]} +{"sent_id": [1, 4, 3, 0, 2, 18]} +{"sent_id": [3, 4, 2, 1, 0, 8]} +{"sent_id": [3, 1, 0, 5, 2, 4]} +{"sent_id": [5, 0, 16, 12, 15, 6]} +{"sent_id": [1, 3, 2, 14, 8, 11]} +{"sent_id": [0, 2, 6, 1, 5, 3]} +{"sent_id": [4, 1, 5, 10, 11, 0]} +{"sent_id": [1, 7, 0, 3, 11, 2]} +{"sent_id": [1, 13, 0, 12, 3, 5]} +{"sent_id": [5, 0, 1, 8, 15, 11]} +{"sent_id": [1, 3, 4, 6, 2, 15]} +{"sent_id": [4, 3, 16, 8, 1, 7]} +{"sent_id": [2, 3, 4, 1, 0, 10]} +{"sent_id": [3, 7, 0, 1, 4, 5]} +{"sent_id": [2, 1, 5, 4, 3, 6]} +{"sent_id": [10, 2, 3, 5, 6, 11]} +{"sent_id": [3, 13, 1, 4, 6, 7]} +{"sent_id": [0, 3, 8, 15, 1, 14]} +{"sent_id": [4, 6, 5, 14, 15, 9]} +{"sent_id": [1, 4, 2, 0, 8, 6]} +{"sent_id": [5, 1, 7, 14, 2, 4]} +{"sent_id": [4, 3, 2, 5, 11, 7]} +{"sent_id": [3, 2, 0, 1, 4, 8]} +{"sent_id": [0, 1, 3, 2, 4, 7]} +{"sent_id": [7, 4, 3, 1, 2, 5]} +{"sent_id": [0, 5, 4, 1, 3, 11]} +{"sent_id": [1, 2, 3, 0, 7, 5]} +{"sent_id": [5, 3, 7, 15, 17, 9]} +{"sent_id": [3, 4, 5, 12, 13, 1]} +{"sent_id": [3, 0, 5, 13, 2, 14]} +{"sent_id": [1, 3, 2, 8, 6, 4]} +{"sent_id": [6, 1, 16, 12, 7, 0]} +{"sent_id": [3, 8, 4, 2, 5, 9]} +{"sent_id": [0, 1, 8, 5, 3, 13]} +{"sent_id": [1, 4, 5, 3, 2, 17]} +{"sent_id": [2, 1, 3, 4, 5, 9]} +{"sent_id": [3, 2, 4, 1, 5, 9]} +{"sent_id": [1, 11, 2, 5, 3, 0]} +{"sent_id": [1, 2, 0, 3, 6, 7]} +{"sent_id": [3, 1, 2, 19, 0, 12]} +{"sent_id": [3, 4, 11, 0, 1, 5]} +{"sent_id": [1, 2, 4, 9, 0, 15]} +{"sent_id": [1, 3, 2, 4, 0, 9]} +{"sent_id": [6, 3, 13, 15, 4, 0]} +{"sent_id": [6, 15, 13, 14, 17, 3]} +{"sent_id": [0, 1, 12, 2, 7, 3]} +{"sent_id": [1, 4, 0, 2, 3, 7]} +{"sent_id": [9, 3, 4, 0, 1, 7]} +{"sent_id": [1, 11, 2, 0, 3, 10]} +{"sent_id": [1, 2, 4, 3, 5, 11]} +{"sent_id": [1, 2, 3, 5, 0, 7]} +{"sent_id": [1, 4, 0, 2, 3, 5]} +{"sent_id": [2, 3, 13, 4, 1, 0]} +{"sent_id": [8, 4, 6, 9, 7, 10]} +{"sent_id": [3, 0, 2, 1, 14, 15]} +{"sent_id": [0, 3, 1, 2, 4, 13]} +{"sent_id": [2, 4, 5, 1, 9, 6]} +{"sent_id": [1, 4, 2, 3, 13, 17]} +{"sent_id": [8, 2, 3, 1, 6, 7]} +{"sent_id": [3, 7, 6, 4, 9, 5]} +{"sent_id": [0, 3, 2, 7, 6, 4]} +{"sent_id": [0, 3, 2, 1, 6, 5]} +{"sent_id": [0, 2, 3, 1, 6, 5]} +{"sent_id": [2, 4, 1, 7, 8, 5]} +{"sent_id": [3, 0, 14, 2, 1, 15]} +{"sent_id": [1, 14, 3, 2, 6, 10]} +{"sent_id": [10, 3, 4, 5, 1, 7]} +{"sent_id": [5, 4, 6, 7, 3, 1]} +{"sent_id": [2, 9, 1, 5, 8, 12]} +{"sent_id": [3, 1, 2, 4, 0, 9]} +{"sent_id": [3, 4, 0, 1, 2, 17]} +{"sent_id": [2, 4, 3, 5, 12, 6]} +{"sent_id": [6, 1, 4, 2, 10, 3]} +{"sent_id": [4, 7, 9, 15, 17, 8]} +{"sent_id": [4, 3, 1, 5, 2, 0]} +{"sent_id": [4, 0, 1, 10, 8, 2]} +{"sent_id": [3, 4, 0, 11, 2, 1]} +{"sent_id": [3, 0, 4, 1, 2, 11]} +{"sent_id": [5, 1, 13, 14, 12, 17]} +{"sent_id": [8, 5, 2, 16, 9, 7]} +{"sent_id": [0, 3, 4, 1, 9, 6]} +{"sent_id": [4, 0, 1, 2, 3, 13]} +{"sent_id": [2, 3, 4, 1, 13, 7]} +{"sent_id": [2, 1, 3, 14, 15, 6]} +{"sent_id": [7, 8, 10, 2, 9, 3]} +{"sent_id": [2, 3, 4, 5, 9, 8]} +{"sent_id": [3, 9, 4, 2, 1, 6]} +{"sent_id": [3, 2, 4, 5, 8, 10]} +{"sent_id": [3, 4, 2, 6, 5, 7]} +{"sent_id": [5, 4, 1, 3, 9, 16]} +{"sent_id": [9, 2, 0, 10, 3, 11]} +{"sent_id": [4, 9, 3, 0, 5, 10]} +{"sent_id": [2, 1, 12, 3, 11, 0]} +{"sent_id": [1, 4, 13, 12, 9, 3]} +{"sent_id": [0, 2, 1, 10, 5, 12]} +{"sent_id": [1, 5, 6, 4, 2, 3]} +{"sent_id": [3, 12, 4, 0, 7, 8]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [0, 4, 3, 10, 17, 1]} +{"sent_id": [1, 6, 2, 5, 7, 8]} +{"sent_id": [5, 3, 2, 16, 11, 13]} +{"sent_id": [1, 2, 11, 0, 12, 10]} +{"sent_id": [3, 2, 1, 4, 11, 9]} +{"sent_id": [3, 1, 8, 2, 6, 9]} +{"sent_id": [0, 3, 1, 4, 2, 7]} +{"sent_id": [4, 6, 3, 2, 5, 7]} +{"sent_id": [3, 4, 5, 2, 8, 6]} +{"sent_id": [2, 11, 1, 3, 0, 6]} +{"sent_id": [1, 6, 0, 3, 12, 9]} +{"sent_id": [1, 7, 6, 9, 4, 5]} +{"sent_id": [1, 2, 6, 5, 4, 0]} +{"sent_id": [2, 3, 4, 9, 8, 12]} +{"sent_id": [4, 3, 0, 9, 2, 1]} +{"sent_id": [3, 13, 2, 17, 1, 18]} +{"sent_id": [2, 1, 6, 8, 5, 11]} +{"sent_id": [2, 3, 1, 0, 6, 8]} +{"sent_id": [1, 6, 0, 5, 7, 2]} +{"sent_id": [5, 7, 0, 1, 2, 3]} +{"sent_id": [1, 3, 2, 7, 4, 0]} +{"sent_id": [1, 3, 4, 9, 2, 5]} +{"sent_id": [5, 9, 0, 13, 4, 3]} +{"sent_id": [11, 4, 1, 0, 5, 8]} +{"sent_id": [2, 1, 7, 0, 3, 8]} +{"sent_id": [2, 1, 4, 3, 13, 14]} +{"sent_id": [3, 8, 0, 1, 2, 4]} +{"sent_id": [1, 12, 2, 3, 0, 13]} +{"sent_id": [3, 2, 4, 5, 0, 7]} +{"sent_id": [2, 0, 11, 10, 13, 3]} +{"sent_id": [2, 6, 10, 12, 1, 5]} +{"sent_id": [1, 6, 4, 0, 16, 2]} +{"sent_id": [1, 3, 2, 6, 5, 4]} +{"sent_id": [5, 14, 12, 15, 13, 17]} +{"sent_id": [3, 4, 11, 2, 10, 0]} +{"sent_id": [0, 10, 4, 6, 2, 5]} +{"sent_id": [3, 5, 1, 11, 10, 6]} +{"sent_id": [0, 10, 7, 5, 1, 3]} +{"sent_id": [11, 0, 1, 2, 12, 7]} +{"sent_id": [3, 4, 0, 8, 1, 14]} +{"sent_id": [3, 1, 2, 9, 7, 5]} +{"sent_id": [0, 3, 4, 1, 2, 15]} +{"sent_id": [3, 0, 12, 2, 1, 13]} +{"sent_id": [2, 0, 1, 3, 5, 4]} +{"sent_id": [1, 0, 2, 9, 8, 6]} +{"sent_id": [8, 2, 9, 16, 19, 3]} +{"sent_id": [1, 0, 10, 4, 2, 3]} +{"sent_id": [1, 7, 2, 3, 4, 0]} +{"sent_id": [1, 4, 8, 2, 3, 0]} +{"sent_id": [4, 3, 12, 0, 15, 5]} +{"sent_id": [1, 2, 3, 8, 5, 0]} +{"sent_id": [3, 0, 4, 1, 10, 12]} +{"sent_id": [1, 13, 0, 11, 19, 12]} +{"sent_id": [1, 4, 2, 6, 0, 7]} +{"sent_id": [0, 4, 5, 3, 2, 8]} +{"sent_id": [3, 10, 0, 1, 4, 2]} +{"sent_id": [2, 8, 7, 0, 3, 1]} +{"sent_id": [4, 3, 0, 1, 11, 8]} +{"sent_id": [1, 2, 6, 9, 7, 4]} +{"sent_id": [1, 16, 15, 0, 11, 8]} +{"sent_id": [3, 5, 4, 0, 2, 9]} +{"sent_id": [1, 4, 5, 2, 0, 7]} +{"sent_id": [5, 8, 3, 11, 0, 15]} +{"sent_id": [4, 2, 3, 6, 11, 1]} +{"sent_id": [1, 6, 10, 2, 16, 0]} +{"sent_id": [11, 14, 0, 16, 10, 15]} +{"sent_id": [1, 3, 4, 8, 2, 12]} +{"sent_id": [3, 1, 0, 9, 2, 6]} +{"sent_id": [0, 1, 4, 2, 8, 6]} +{"sent_id": [1, 7, 12, 2, 3, 0]} +{"sent_id": [5, 7, 1, 2, 8, 6]} +{"sent_id": [1, 2, 0, 6, 5, 4]} +{"sent_id": [1, 0, 2, 8, 10, 11]} +{"sent_id": [11, 2, 4, 7, 6, 3]} +{"sent_id": [3, 1, 2, 9, 8, 7]} +{"sent_id": [4, 1, 2, 3, 5, 6]} +{"sent_id": [1, 2, 10, 7, 3, 4]} +{"sent_id": [2, 4, 3, 5, 10, 6]} +{"sent_id": [2, 3, 4, 8, 1, 5]} +{"sent_id": [5, 0, 1, 4, 2, 12]} +{"sent_id": [3, 2, 10, 13, 1, 8]} +{"sent_id": [1, 2, 5, 0, 4, 3]} +{"sent_id": [3, 1, 2, 0, 12, 9]} +{"sent_id": [0, 3, 10, 1, 9, 19]} +{"sent_id": [1, 7, 9, 12, 8, 10]} +{"sent_id": [3, 13, 0, 1, 5, 2]} +{"sent_id": [4, 5, 7, 0, 2, 11]} +{"sent_id": [0, 2, 1, 4, 18, 3]} +{"sent_id": [4, 0, 5, 3, 14, 1]} +{"sent_id": [2, 1, 11, 0, 3, 9]} +{"sent_id": [1, 2, 5, 0, 4, 3]} +{"sent_id": [2, 3, 5, 7, 9, 6]} +{"sent_id": [2, 8, 0, 3, 11, 1]} +{"sent_id": [4, 1, 2, 0, 6, 3]} +{"sent_id": [1, 2, 0, 3, 5, 10]} +{"sent_id": [1, 2, 4, 14, 5, 3]} +{"sent_id": [0, 13, 3, 2, 14, 15]} +{"sent_id": [1, 3, 5, 2, 14, 0]} +{"sent_id": [0, 1, 3, 4, 2, 9]} +{"sent_id": [1, 2, 0, 3, 12, 6]} +{"sent_id": [5, 6, 7, 13, 2, 15]} +{"sent_id": [10, 4, 2, 1, 7, 15]} +{"sent_id": [1, 2, 3, 4, 10, 7]} +{"sent_id": [1, 3, 4, 8, 17, 7]} +{"sent_id": [15, 3, 4, 2, 5, 10]} +{"sent_id": [2, 7, 3, 1, 0, 6]} +{"sent_id": [0, 1, 7, 4, 2, 5]} +{"sent_id": [2, 13, 1, 9, 10, 0]} +{"sent_id": [2, 3, 10, 1, 15, 17]} +{"sent_id": [2, 0, 1, 4, 3]} +{"sent_id": [1, 10, 3, 2, 7, 9]} +{"sent_id": [1, 2, 0, 4, 5, 10]} +{"sent_id": [3, 0, 9, 11, 1, 2]} +{"sent_id": [1, 5, 6, 7, 10, 11]} +{"sent_id": [0, 5, 1, 10, 9, 7]} +{"sent_id": [0, 4, 6, 1, 8, 9]} +{"sent_id": [2, 1, 4, 5, 0, 3]} +{"sent_id": [2, 9, 3, 11, 0, 4]} +{"sent_id": [4, 0, 12, 10, 1, 3]} +{"sent_id": [2, 4, 8, 1, 3, 6]} +{"sent_id": [2, 1, 6, 5, 7, 0]} +{"sent_id": [1, 2, 5, 8, 0, 4]} +{"sent_id": [4, 11, 1, 0, 2, 3]} +{"sent_id": [1, 9, 2, 3, 0, 5]} +{"sent_id": [9, 4, 1, 3, 0, 13]} +{"sent_id": [0, 15, 2, 1, 9, 16]} +{"sent_id": [2, 4, 3, 1, 9, 8]} +{"sent_id": [5, 12, 0, 9, 15, 1]} +{"sent_id": [4, 3, 1, 2, 5, 7]} +{"sent_id": [3, 0, 1, 8, 4, 10]} +{"sent_id": [3, 2, 5, 14, 19, 1]} +{"sent_id": [1, 0, 2, 7, 5, 12]} +{"sent_id": [3, 1, 10, 12, 4, 7]} +{"sent_id": [11, 6, 14, 2, 5, 0]} +{"sent_id": [3, 4, 2, 1, 5, 6]} +{"sent_id": [3, 1, 2, 8, 4, 13]} +{"sent_id": [3, 1, 4, 2, 6, 13]} +{"sent_id": [0, 16, 2, 3, 1, 4]} +{"sent_id": [3, 1, 4, 2, 0, 11]} +{"sent_id": [0, 4, 3, 5, 8, 17]} +{"sent_id": [1, 8, 2, 3, 7, 0]} +{"sent_id": [1, 6, 7, 12, 10, 2]} +{"sent_id": [0, 6, 1, 2, 4, 5]} +{"sent_id": [1, 2, 3, 8, 4, 9]} +{"sent_id": [3, 0, 5, 1, 2, 6]} +{"sent_id": [1, 2, 3, 7, 0, 10]} +{"sent_id": [0, 3, 1, 5, 4, 2]} +{"sent_id": [2, 3, 5, 4, 6, 9]} +{"sent_id": [2, 10, 3, 4, 16, 0]} +{"sent_id": [2, 4, 11, 8, 5, 0]} +{"sent_id": [1, 4, 2, 5, 0, 6]} +{"sent_id": [1, 12, 3, 8, 2, 9]} +{"sent_id": [1, 3, 4, 2, 5, 0]} +{"sent_id": [1, 3, 2, 4, 5, 6]} +{"sent_id": [3, 1, 0, 8, 7, 5]} +{"sent_id": [1, 7, 6, 2, 18, 11]} +{"sent_id": [3, 1, 2, 5, 0, 4]} +{"sent_id": [3, 1, 15, 0, 4, 10]} +{"sent_id": [3, 0, 6, 2, 5, 1]} +{"sent_id": [0, 1, 3, 16, 2, 7]} +{"sent_id": [2, 3, 1, 6, 4, 8]} +{"sent_id": [2, 3, 7, 1, 4, 8]} +{"sent_id": [3, 9, 2, 10, 1, 12]} +{"sent_id": [4, 5, 9, 0, 10, 3]} +{"sent_id": [2, 1, 5, 8, 9, 0]} +{"sent_id": [9, 0, 1, 5, 2, 10]} +{"sent_id": [2, 0, 3, 20, 13, 5]} +{"sent_id": [1, 3, 0, 9, 4, 2]} +{"sent_id": [5, 1, 16, 0, 6, 17]} +{"sent_id": [2, 1, 3, 7, 19, 10]} +{"sent_id": [4, 5, 2, 0, 1, 3]} +{"sent_id": [3, 8, 2, 6, 4, 5]} +{"sent_id": [4, 3, 11, 0, 2, 1]} +{"sent_id": [4, 5, 0, 13, 1, 2]} +{"sent_id": [3, 2, 1, 0, 16, 7]} +{"sent_id": [4, 3, 6, 2, 5, 10]} +{"sent_id": [1, 3, 2, 0, 10, 9]} +{"sent_id": [11, 2, 6, 5, 9, 12]} +{"sent_id": [3, 5, 9, 10, 4, 2]} +{"sent_id": [12, 3, 0, 26, 1, 4]} +{"sent_id": [2, 1, 5, 12, 6, 14]} +{"sent_id": [3, 1, 4, 2, 13, 0]} +{"sent_id": [1, 3, 2, 7, 5, 6]} +{"sent_id": [1, 3, 2, 5, 12, 4]} +{"sent_id": [5, 1, 4, 6, 0, 3]} +{"sent_id": [3, 1, 2, 4, 0, 5]} +{"sent_id": [1, 0, 8, 2, 4, 3]} +{"sent_id": [3, 1, 2, 14, 0, 15]} +{"sent_id": [1, 2, 9, 3, 8, 4]} +{"sent_id": [4, 12, 6, 14, 7, 3]} +{"sent_id": [3, 1, 12, 17, 24, 0]} +{"sent_id": [1, 3, 10, 2, 5, 4]} +{"sent_id": [3, 9, 2, 10, 14, 6]} +{"sent_id": [4, 2, 1, 9, 5, 0]} +{"sent_id": [1, 2, 3, 5, 4, 8]} +{"sent_id": [0, 1, 2, 15, 3, 7]} +{"sent_id": [8, 5, 6, 11, 10, 12]} +{"sent_id": [1, 2, 0, 4, 5, 15]} +{"sent_id": [1, 2, 3, 9, 7, 0]} +{"sent_id": [1, 2, 4, 0, 5, 6]} +{"sent_id": [3, 5, 2, 1, 4, 9]} +{"sent_id": [1, 5, 9, 15, 13, 10]} +{"sent_id": [1, 5, 2, 4, 0, 6]} +{"sent_id": [1, 2, 12, 6, 0, 4]} +{"sent_id": [0, 2, 1, 3, 4, 6]} +{"sent_id": [3, 7, 1, 4, 5, 2]} +{"sent_id": [3, 1, 0, 5, 4, 10]} +{"sent_id": [2, 12, 0, 3, 1, 4]} +{"sent_id": [3, 1, 2, 5, 11, 0]} +{"sent_id": [0, 3, 1, 2, 9, 8]} +{"sent_id": [2, 1, 13, 4, 5, 6]} +{"sent_id": [1, 3, 2, 8, 7, 15]} +{"sent_id": [1, 4, 0, 13, 2, 6]} +{"sent_id": [1, 2, 3, 4, 12, 15]} +{"sent_id": [1, 5, 4, 2, 10, 0]} +{"sent_id": [3, 1, 14, 0, 2, 8]} +{"sent_id": [0, 11, 12, 16, 10, 14]} +{"sent_id": [7, 2, 15, 6, 1, 5]} +{"sent_id": [1, 2, 0, 13, 6, 7]} +{"sent_id": [1, 3, 5, 4, 2, 0]} +{"sent_id": [2, 4, 0, 1, 8, 6]} +{"sent_id": [2, 1, 3, 12, 8, 6]} +{"sent_id": [2, 0, 11, 5, 4, 15]} +{"sent_id": [1, 5, 8, 7, 6, 0]} +{"sent_id": [2, 3, 10, 1, 4, 5]} +{"sent_id": [1, 8, 2, 0, 4, 3]} +{"sent_id": [1, 9, 3, 2, 7, 0]} +{"sent_id": [4, 1, 3, 0, 2, 6]} +{"sent_id": [7, 2, 3, 1, 10, 4]} +{"sent_id": [5, 1, 2, 3, 17, 11]} +{"sent_id": [6, 5, 1, 0, 2, 15]} +{"sent_id": [0, 2, 12, 1, 11, 14]} +{"sent_id": [0, 2, 4, 8, 6, 15]} +{"sent_id": [1, 2, 0, 8, 3, 14]} +{"sent_id": [3, 4, 7, 2, 5, 12]} +{"sent_id": [0, 1, 5, 6, 3, 2]} +{"sent_id": [1, 13, 2, 15, 0, 8]} +{"sent_id": [3, 1, 8, 5, 2, 6]} +{"sent_id": [1, 0, 6, 10, 16, 3]} +{"sent_id": [5, 7, 6, 9, 3, 10]} +{"sent_id": [3, 13, 9, 1, 6, 7]} +{"sent_id": [4, 3, 11, 12, 5, 9]} +{"sent_id": [1, 2, 16, 12, 3, 5]} +{"sent_id": [1, 9, 0, 2, 8, 6]} +{"sent_id": [12, 21, 7, 14, 17, 5]} +{"sent_id": [1, 9, 11, 15, 8, 10]} +{"sent_id": [5, 7, 6, 1, 11, 4]} +{"sent_id": [2, 0, 3, 4, 5, 6]} +{"sent_id": [1, 0, 5, 2, 9, 6]} +{"sent_id": [2, 0, 13, 3, 9, 8]} +{"sent_id": [2, 12, 4, 5, 3, 11]} +{"sent_id": [1, 2, 0, 9, 5, 10]} +{"sent_id": [0, 4, 15, 1, 2, 11]} +{"sent_id": [1, 0, 2, 16, 11, 3]} +{"sent_id": [1, 3, 2, 8, 10, 13]} +{"sent_id": [11, 3, 1, 2, 5, 6]} +{"sent_id": [5, 7, 0, 6, 3, 2]} +{"sent_id": [1, 2, 4, 3, 11, 16]} +{"sent_id": [1, 0, 6, 2, 5, 3]} +{"sent_id": [1, 5, 7, 2, 4, 8]} +{"sent_id": [2, 13, 0, 4, 5, 3]} +{"sent_id": [1, 0, 6, 2, 7, 13]} +{"sent_id": [3, 2, 4, 10, 6, 0]} +{"sent_id": [0, 4, 3, 1, 2, 7]} +{"sent_id": [3, 4, 1, 11, 2, 5]} +{"sent_id": [3, 0, 4, 1, 2, 13]} +{"sent_id": [18, 0, 1, 13, 10, 6]} +{"sent_id": [3, 4, 0, 16, 1, 2]} +{"sent_id": [2, 1, 7, 4, 20, 12]} +{"sent_id": [1, 3, 2, 4, 5, 7]} +{"sent_id": [1, 2, 9, 3, 0, 6]} +{"sent_id": [2, 3, 0, 4, 5, 1]} +{"sent_id": [18, 1, 0, 9, 12, 5]} +{"sent_id": [5, 2, 8, 1, 4, 9]} +{"sent_id": [5, 2, 3, 13, 0, 7]} +{"sent_id": [4, 1, 3, 5, 10, 6]} +{"sent_id": [2, 5, 10, 1, 4, 7]} +{"sent_id": [0, 3, 2, 4, 5, 1]} +{"sent_id": [1, 2, 0, 3, 5, 6]} +{"sent_id": [1, 2, 12, 11, 18, 10]} +{"sent_id": [3, 1, 2, 4, 0, 6]} +{"sent_id": [4, 2, 5, 7, 3, 1]} +{"sent_id": [3, 1, 5, 2, 4, 0]} +{"sent_id": [6, 17, 7, 8, 14, 15]} +{"sent_id": [1, 2, 10, 6, 9, 0]} +{"sent_id": [1, 0, 4, 2, 3, 5]} +{"sent_id": [1, 0, 4, 9, 6, 5]} +{"sent_id": [3, 2, 1, 0, 4, 6]} +{"sent_id": [5, 8, 17, 10, 12, 4]} +{"sent_id": [3, 2, 11, 1, 0, 12]} +{"sent_id": [3, 10, 2, 0, 1, 8]} +{"sent_id": [3, 1, 2, 0, 4, 5]} +{"sent_id": [4, 13, 2, 18, 7, 0]} +{"sent_id": [1, 2, 3, 5, 0, 7]} +{"sent_id": [6, 19, 20, 18, 2, 11]} +{"sent_id": [8, 4, 5, 3, 1, 2]} +{"sent_id": [1, 3, 2, 11, 4, 0]} +{"sent_id": [1, 3, 2, 9, 10, 11]} +{"sent_id": [1, 2, 4, 3, 0, 12]} +{"sent_id": [1, 0, 8, 2, 7, 3]} +{"sent_id": [4, 2, 1, 9, 6, 7]} +{"sent_id": [3, 2, 1, 4, 6, 5]} +{"sent_id": [0, 1, 2, 8, 4, 12]} +{"sent_id": [3, 5, 16, 1, 4, 2]} +{"sent_id": [3, 1, 0, 16, 8, 2]} +{"sent_id": [1, 2, 8, 3, 4, 7]} +{"sent_id": [1, 2, 3, 4, 5, 7]} +{"sent_id": [1, 3, 5, 2, 9, 4]} +{"sent_id": [1, 2, 4, 0, 5, 12]} +{"sent_id": [11, 3, 0, 2, 4, 5]} +{"sent_id": [2, 1, 0, 5, 7, 6]} +{"sent_id": [1, 2, 11, 9, 5, 0]} +{"sent_id": [1, 3, 7, 8, 2, 0]} +{"sent_id": [1, 2, 0, 4, 6, 3]} +{"sent_id": [3, 4, 0, 2, 8, 5]} +{"sent_id": [1, 0, 2, 5, 7, 6]} +{"sent_id": [4, 1, 5, 3, 8, 2]} +{"sent_id": [1, 2, 3, 4, 7, 5]} +{"sent_id": [1, 2, 19, 8, 18, 0]} +{"sent_id": [1, 0, 12, 3, 8, 11]} +{"sent_id": [1, 16, 9, 5, 4, 10]} +{"sent_id": [0, 4, 1, 2, 9, 16]} +{"sent_id": [0, 1, 3, 4, 10, 17]} +{"sent_id": [3, 1, 2, 6, 7, 14]} +{"sent_id": [0, 1, 2, 4, 3, 5]} +{"sent_id": [1, 15, 2, 3, 0, 4]} +{"sent_id": [2, 0, 10, 1, 6, 9]} +{"sent_id": [3, 0, 8, 1, 2, 14]} +{"sent_id": [0, 2, 1, 4, 5, 12]} +{"sent_id": [3, 5, 1, 2, 4, 0]} +{"sent_id": [1, 2, 7, 8, 0, 9]} +{"sent_id": [3, 1, 2, 4, 5, 7]} +{"sent_id": [8, 3, 2, 11, 4, 18]} +{"sent_id": [3, 1, 4, 2, 5, 6]} +{"sent_id": [8, 3, 0, 13, 2, 10]} +{"sent_id": [1, 2, 4, 3, 12, 0]} +{"sent_id": [3, 0, 1, 9, 2, 4]} +{"sent_id": [0, 4, 9, 10, 15, 1]} +{"sent_id": [2, 3, 0, 14, 4, 1]} +{"sent_id": [3, 0, 5, 4, 6, 1]} +{"sent_id": [0, 2, 1, 11, 12, 5]} +{"sent_id": [1, 3, 2, 14, 4, 6]} +{"sent_id": [1, 7, 2, 5, 0, 8]} +{"sent_id": [1, 11, 2, 4, 6, 5]} +{"sent_id": [3, 5, 1, 2, 4, 11]} +{"sent_id": [3, 10, 1, 7, 4, 2]} +{"sent_id": [0, 7, 3, 2, 10, 4]} +{"sent_id": [1, 5, 2, 12, 11, 0]} +{"sent_id": [2, 9, 5, 4, 6, 1]} +{"sent_id": [1, 5, 2, 4, 6, 0]} +{"sent_id": [0, 1, 3, 2, 6, 12]} +{"sent_id": [4, 3, 0, 5, 1, 2]} +{"sent_id": [1, 6, 3, 2, 4, 7]} +{"sent_id": [3, 0, 6, 1, 12, 4]} +{"sent_id": [1, 6, 4, 7, 5, 2]} +{"sent_id": [2, 1, 13, 3, 11, 4]} +{"sent_id": [3, 1, 11, 0, 12, 6]} +{"sent_id": [3, 6, 8, 1, 0, 2]} +{"sent_id": [2, 4, 5, 6, 0, 10]} +{"sent_id": [4, 3, 1, 2, 5, 6]} +{"sent_id": [2, 1, 3, 9, 4, 11]} +{"sent_id": [3, 1, 13, 6, 14, 0]} +{"sent_id": [0, 1, 4, 3, 2, 17]} +{"sent_id": [1, 2, 12, 4, 0, 3]} +{"sent_id": [2, 3, 7, 0, 4, 1]} +{"sent_id": [2, 6, 1, 0, 5, 8]} +{"sent_id": [5, 10, 6, 1, 7, 2]} +{"sent_id": [3, 1, 0, 2, 13, 14]} +{"sent_id": [1, 2, 6, 0, 3, 13]} +{"sent_id": [0, 2, 1, 12, 11, 3]} +{"sent_id": [0, 4, 5, 2, 1, 6]} +{"sent_id": [10, 4, 1, 2, 7, 11]} +{"sent_id": [2, 4, 8, 0, 12, 1]} +{"sent_id": [1, 0, 2, 5, 10, 6]} +{"sent_id": [2, 0, 1, 9, 4, 5]} +{"sent_id": [2, 1, 3, 7, 5, 6]} +{"sent_id": [1, 4, 2, 3, 5, 9]} +{"sent_id": [2, 14, 0, 1, 15, 10]} +{"sent_id": [11, 5, 0, 2, 7, 8]} +{"sent_id": [0, 6, 3, 5, 2, 9]} +{"sent_id": [4, 1, 2, 5, 8, 14]} +{"sent_id": [1, 2, 6, 5, 11, 4]} +{"sent_id": [2, 3, 11, 5, 4, 0]} +{"sent_id": [3, 4, 8, 6, 5, 10]} +{"sent_id": [3, 7, 6, 2, 4, 1]} +{"sent_id": [3, 2, 1, 0, 8, 9]} +{"sent_id": [0, 1, 10, 3, 2, 12]} +{"sent_id": [3, 0, 4, 1, 10, 11]} +{"sent_id": [3, 1, 2, 4, 8, 13]} +{"sent_id": [3, 5, 4, 1, 2, 15]} +{"sent_id": [2, 1, 6, 0, 10, 5]} +{"sent_id": [1, 2, 3, 4, 0, 18]} +{"sent_id": [1, 7, 3, 4, 2, 6]} +{"sent_id": [7, 0, 16, 2, 18, 17]} +{"sent_id": [12, 3, 1, 10, 11, 5]} +{"sent_id": [0, 8, 2, 1, 5, 6]} +{"sent_id": [3, 1, 8, 9, 4, 2]} +{"sent_id": [11, 1, 3, 4, 6, 2]} +{"sent_id": [1, 11, 3, 6, 0, 8]} +{"sent_id": [5, 4, 12, 1, 3, 7]} +{"sent_id": [5, 4, 2, 6, 3, 0]} +{"sent_id": [12, 13, 1, 0, 7, 10]} +{"sent_id": [1, 0, 2, 3, 7, 10]} +{"sent_id": [0, 2, 1, 4, 5, 6]} +{"sent_id": [1, 2, 7, 3, 5, 0]} +{"sent_id": [2, 4, 8, 13, 9, 7]} +{"sent_id": [3, 6, 1, 5, 2, 8]} +{"sent_id": [3, 4, 1, 2, 7, 8]} +{"sent_id": [3, 1, 10, 16, 2, 7]} +{"sent_id": [1, 2, 4, 5, 7, 0]} +{"sent_id": [2, 4, 5, 8, 6, 7]} +{"sent_id": [4, 3, 2, 1, 5, 0]} +{"sent_id": [1, 4, 5, 13, 6, 12]} +{"sent_id": [3, 10, 2, 1, 0, 6]} +{"sent_id": [1, 2, 7, 15, 6, 4]} +{"sent_id": [2, 6, 5, 1, 4, 7]} +{"sent_id": [5, 2, 4, 6, 8, 7]} +{"sent_id": [2, 1, 8, 10, 4, 3]} +{"sent_id": [1, 11, 2, 4, 6, 10]} +{"sent_id": [3, 2, 1, 5, 0, 11]} +{"sent_id": [2, 4, 17, 8, 5, 3]} +{"sent_id": [3, 1, 20, 6, 0, 4]} +{"sent_id": [3, 1, 10, 16, 8, 9]} +{"sent_id": [4, 19, 5, 8, 14, 2]} +{"sent_id": [1, 2, 3, 4, 17, 12]} +{"sent_id": [1, 4, 3, 13, 2, 9]} +{"sent_id": [1, 2, 13, 5, 3, 15]} +{"sent_id": [9, 8, 12, 10, 3, 4]} +{"sent_id": [3, 4, 0, 1, 7, 8]} +{"sent_id": [12, 1, 7, 3, 8, 11]} +{"sent_id": [3, 2, 10, 4, 5, 9]} +{"sent_id": [1, 10, 2, 0, 5, 13]} +{"sent_id": [6, 14, 12, 7, 2, 9]} +{"sent_id": [3, 0, 4, 1, 2, 14]} +{"sent_id": [2, 3, 4, 1, 7, 10]} +{"sent_id": [3, 10, 6, 7, 17, 9]} +{"sent_id": [3, 9, 12, 4, 7, 0]} +{"sent_id": [5, 4, 2, 0, 7, 8]} +{"sent_id": [1, 9, 3, 5, 4, 7]} +{"sent_id": [0, 3, 4, 2, 5, 10]} +{"sent_id": [1, 2, 3, 13, 17, 4]} +{"sent_id": [4, 5, 15, 0, 1, 14]} +{"sent_id": [3, 2, 8, 4, 0, 1]} +{"sent_id": [8, 3, 2, 6, 5, 0]} +{"sent_id": [5, 4, 2, 7, 3, 0]} +{"sent_id": [0, 10, 1, 2, 11, 9]} +{"sent_id": [3, 1, 13, 10, 17, 0]} +{"sent_id": [2, 0, 3, 1, 6, 4]} +{"sent_id": [1, 9, 2, 5, 7, 4]} +{"sent_id": [6, 0, 2, 1, 14, 13]} +{"sent_id": [3, 0, 2, 13, 14, 15]} +{"sent_id": [1, 3, 2, 10, 0, 4]} +{"sent_id": [10, 2, 0, 3, 1, 5]} +{"sent_id": [3, 1, 6, 0, 2, 4]} +{"sent_id": [0, 1, 10, 14, 12, 8]} +{"sent_id": [5, 1, 3, 0, 4, 2]} +{"sent_id": [2, 10, 6, 3, 11, 1]} +{"sent_id": [3, 14, 1, 2, 12, 4]} +{"sent_id": [12, 3, 2, 7, 1, 9]} +{"sent_id": [3, 13, 0, 2, 11, 6]} +{"sent_id": [4, 0, 1, 3, 10, 9]} +{"sent_id": [3, 4, 9, 10, 1, 17]} +{"sent_id": [1, 13, 5, 3, 2, 12]} +{"sent_id": [2, 3, 4, 5, 7, 0]} +{"sent_id": [1, 2, 4, 5, 3, 0]} +{"sent_id": [1, 2, 6, 4, 8, 7]} +{"sent_id": [1, 2, 5, 10, 4, 6]} +{"sent_id": [10, 11, 12, 9, 5, 14]} +{"sent_id": [2, 0, 3, 1, 6, 9]} +{"sent_id": [2, 1, 5, 4, 3, 6]} +{"sent_id": [9, 3, 1, 5, 12, 6]} +{"sent_id": [2, 9, 1, 4, 0, 7]} +{"sent_id": [3, 2, 1, 11, 5, 6]} +{"sent_id": [13, 5, 0, 2, 12, 1]} +{"sent_id": [2, 0, 3, 8, 16, 4]} +{"sent_id": [0, 4, 1, 2, 12, 11]} +{"sent_id": [7, 3, 5, 9, 10, 2]} +{"sent_id": [1, 2, 3, 4, 6, 16]} +{"sent_id": [1, 2, 0, 8, 9, 12]} +{"sent_id": [4, 6, 5, 3, 2, 15]} +{"sent_id": [5, 7, 16, 6, 1, 3]} +{"sent_id": [2, 1, 7, 5, 3, 4]} +{"sent_id": [0, 5, 2, 1, 6, 12]} +{"sent_id": [3, 6, 2, 7, 11, 5]} +{"sent_id": [1, 0, 3, 4, 2, 6]} +{"sent_id": [3, 10, 5, 2, 9, 8]} +{"sent_id": [0, 1, 13, 3, 2, 8]} +{"sent_id": [5, 1, 12, 9, 15, 6]} +{"sent_id": [4, 14, 2, 8, 5, 1]} +{"sent_id": [1, 5, 3, 0, 7, 6]} +{"sent_id": [1, 3, 9, 10, 12, 2]} +{"sent_id": [3, 6, 14, 7, 5, 0]} +{"sent_id": [1, 2, 3, 9, 8, 0]} +{"sent_id": [4, 0, 2, 3, 10, 1]} +{"sent_id": [4, 2, 15, 0, 7, 9]} +{"sent_id": [0, 1, 2, 4, 5, 20]} +{"sent_id": [3, 6, 4, 12, 1, 15]} +{"sent_id": [4, 15, 1, 3, 0, 2]} +{"sent_id": [3, 21, 5, 4, 7, 19]} +{"sent_id": [5, 3, 2, 1, 0, 4]} +{"sent_id": [2, 1, 0, 11, 10, 5]} +{"sent_id": [3, 4, 1, 0, 17, 2]} +{"sent_id": [7, 6, 3, 10, 9, 2]} +{"sent_id": [4, 2, 5, 1, 0, 7]} +{"sent_id": [1, 3, 7, 2, 9, 4]} +{"sent_id": [4, 1, 5, 6, 2, 0]} +{"sent_id": [3, 8, 0, 1, 5, 6]} +{"sent_id": [3, 16, 2, 5, 14, 6]} +{"sent_id": [1, 2, 0, 5, 16, 7]} +{"sent_id": [2, 0, 4, 1, 9, 5]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [7, 0, 14, 13, 2, 9]} +{"sent_id": [1, 2, 5, 6, 14, 0]} +{"sent_id": [3, 4, 6, 2, 15, 5]} +{"sent_id": [7, 0, 9, 19, 2, 14]} +{"sent_id": [2, 4, 6, 5, 1, 0]} +{"sent_id": [3, 4, 0, 1, 8, 9]} +{"sent_id": [2, 3, 0, 7, 4, 5]} +{"sent_id": [2, 12, 3, 14, 18, 4]} +{"sent_id": [9, 0, 1, 5, 2, 4]} +{"sent_id": [4, 2, 9, 7, 0, 1]} +{"sent_id": [0, 7, 5, 6, 3, 2]} +{"sent_id": [0, 1, 3, 2, 6, 7]} +{"sent_id": [0, 3, 4, 7, 2, 8]} +{"sent_id": [3, 1, 4, 9, 16, 14]} +{"sent_id": [0, 4, 12, 1, 3, 6]} +{"sent_id": [3, 4, 5, 6, 13, 10]} +{"sent_id": [3, 0, 1, 4, 2, 15]} +{"sent_id": [0, 3, 4, 2, 5, 8]} +{"sent_id": [1, 4, 0, 8, 3, 2]} +{"sent_id": [0, 1, 6, 7, 3, 11]} +{"sent_id": [2, 7, 8, 3, 4, 0]} +{"sent_id": [0, 2, 5, 1, 9, 8]} +{"sent_id": [4, 13, 6, 5, 0, 2]} +{"sent_id": [14, 3, 0, 16, 2, 4]} +{"sent_id": [5, 1, 2, 3, 15, 6]} +{"sent_id": [4, 0, 5, 8, 9, 3]} +{"sent_id": [3, 1, 2, 4, 14, 0]} +{"sent_id": [3, 1, 18, 2, 19, 10]} +{"sent_id": [3, 4, 14, 2, 1, 11]} +{"sent_id": [1, 2, 0, 4, 5, 8]} +{"sent_id": [1, 6, 2, 0, 10, 7]} +{"sent_id": [2, 3, 0, 5, 4, 1]} +{"sent_id": [1, 2, 0, 14, 8, 7]} +{"sent_id": [12, 4, 3, 0, 2, 5]} +{"sent_id": [3, 0, 1, 2, 4, 8]} +{"sent_id": [0, 4, 6, 3, 1, 2]} +{"sent_id": [3, 2, 4, 5, 7, 6]} +{"sent_id": [3, 2, 1, 12, 10, 8]} +{"sent_id": [3, 6, 2, 7, 1, 17]} +{"sent_id": [3, 1, 4, 2, 0, 7]} +{"sent_id": [0, 3, 2, 10, 11, 9]} +{"sent_id": [1, 2, 3, 7, 0, 6]} +{"sent_id": [3, 1, 2, 4, 5, 0]} +{"sent_id": [1, 4, 2, 5, 0, 6]} +{"sent_id": [3, 2, 4, 5, 6, 1]} +{"sent_id": [7, 2, 8, 4, 5, 6]} +{"sent_id": [1, 3, 2, 4, 0, 14]} +{"sent_id": [0, 12, 16, 9, 10, 20]} +{"sent_id": [0, 5, 6, 3, 11, 13]} +{"sent_id": [1, 6, 0, 7, 8, 4]} +{"sent_id": [3, 4, 16, 5, 13, 1]} +{"sent_id": [3, 1, 2, 0, 9, 4]} +{"sent_id": [3, 4, 12, 2, 5, 11]} +{"sent_id": [1, 2, 3, 8, 9, 6]} +{"sent_id": [4, 2, 5, 1, 3, 0]} +{"sent_id": [2, 5, 1, 4, 6, 0]} +{"sent_id": [1, 2, 15, 8, 0, 10]} +{"sent_id": [3, 5, 8, 18, 1, 2]} +{"sent_id": [8, 10, 9, 6, 12, 3]} +{"sent_id": [1, 2, 5, 11, 6, 3]} +{"sent_id": [4, 1, 0, 2, 11, 3]} +{"sent_id": [0, 13, 4, 3, 10, 8]} +{"sent_id": [4, 3, 5, 6, 10, 9]} +{"sent_id": [1, 2, 6, 7, 4, 5]} +{"sent_id": [1, 2, 5, 0, 3, 15]} +{"sent_id": [0, 5, 3, 4, 2, 16]} +{"sent_id": [2, 4, 3, 5, 6, 8]} +{"sent_id": [2, 1, 3, 0, 5, 4]} +{"sent_id": [0, 3, 9, 7, 2, 4]} +{"sent_id": [1, 4, 7, 5, 2, 3]} +{"sent_id": [1, 6, 0, 7, 2, 3]} +{"sent_id": [2, 3, 10, 0, 5, 1]} +{"sent_id": [10, 4, 5, 2, 8, 9]} +{"sent_id": [3, 1, 0, 4, 2, 5]} +{"sent_id": [1, 6, 5, 2, 4, 7]} +{"sent_id": [1, 0, 3, 2, 12, 9]} +{"sent_id": [1, 2, 3, 4, 11, 8]} +{"sent_id": [1, 9, 0, 10, 13, 14]} +{"sent_id": [1, 5, 16, 6, 0, 8]} +{"sent_id": [0, 2, 1, 10, 16, 4]} +{"sent_id": [1, 0, 3, 12, 16, 11]} +{"sent_id": [2, 0, 3, 4, 5, 7]} +{"sent_id": [0, 2, 3, 1, 15, 4]} +{"sent_id": [6, 1, 2, 0, 5, 3]} +{"sent_id": [0, 3, 1, 14, 9, 2]} +{"sent_id": [0, 2, 1, 9, 3, 4]} +{"sent_id": [1, 2, 4, 6, 5, 9]} +{"sent_id": [2, 1, 3, 4, 6, 7]} +{"sent_id": [3, 0, 2, 13, 1, 14]} +{"sent_id": [1, 4, 9, 3, 0, 2]} +{"sent_id": [3, 0, 2, 4, 6, 5]} +{"sent_id": [2, 3, 8, 0, 10, 6]} +{"sent_id": [1, 12, 3, 0, 2, 5]} +{"sent_id": [2, 4, 5, 10, 9, 1]} +{"sent_id": [0, 1, 4, 2, 3, 5]} +{"sent_id": [2, 4, 3, 11, 1, 5]} +{"sent_id": [1, 2, 3, 10, 6, 0]} +{"sent_id": [2, 3, 1, 6, 0, 5]} +{"sent_id": [1, 4, 3, 2, 10, 11]} +{"sent_id": [1, 4, 2, 5, 3, 8]} +{"sent_id": [3, 4, 1, 2, 5, 0]} +{"sent_id": [1, 3, 16, 4, 0, 2]} +{"sent_id": [1, 8, 2, 3, 4, 5]} +{"sent_id": [0, 14, 1, 8, 2, 15]} +{"sent_id": [4, 1, 0, 2, 14, 5]} +{"sent_id": [2, 0, 3, 6, 1, 17]} +{"sent_id": [1, 0, 5, 10, 2, 7]} +{"sent_id": [0, 1, 2, 5, 7, 8]} +{"sent_id": [1, 0, 7, 5, 6, 3]} +{"sent_id": [1, 2, 11, 7, 5, 6]} +{"sent_id": [1, 3, 0, 5, 4, 2]} +{"sent_id": [3, 11, 1, 2, 10, 16]} +{"sent_id": [5, 2, 1, 4, 0, 3]} +{"sent_id": [1, 2, 0, 4, 10, 3]} +{"sent_id": [1, 2, 12, 13, 0, 4]} +{"sent_id": [0, 2, 1, 11, 3, 14]} +{"sent_id": [2, 1, 0, 4, 7, 10]} +{"sent_id": [1, 5, 2, 4, 8, 6]} +{"sent_id": [3, 1, 2, 5, 6, 4]} +{"sent_id": [2, 3, 0, 4, 1, 7]} +{"sent_id": [3, 2, 9, 1, 0, 4]} +{"sent_id": [3, 4, 7, 5, 6, 9]} +{"sent_id": [0, 2, 1, 3, 13, 7]} +{"sent_id": [2, 0, 3, 7, 1, 6]} +{"sent_id": [1, 5, 2, 3, 15, 4]} +{"sent_id": [4, 1, 5, 7, 2, 3]} +{"sent_id": [4, 1, 5, 0, 2, 3]} +{"sent_id": [4, 5, 7, 12, 10, 8]} +{"sent_id": [0, 2, 3, 15, 4, 20]} +{"sent_id": [3, 4, 2, 0, 1, 13]} +{"sent_id": [1, 4, 2, 8, 9, 5]} +{"sent_id": [5, 1, 7, 0, 2, 20]} +{"sent_id": [1, 2, 7, 3, 4, 6]} +{"sent_id": [3, 6, 1, 7, 9, 10]} +{"sent_id": [1, 0, 3, 9, 2, 14]} +{"sent_id": [1, 2, 9, 10, 3, 0]} +{"sent_id": [3, 8, 2, 4, 11, 9]} +{"sent_id": [1, 2, 11, 3, 0, 12]} +{"sent_id": [1, 2, 4, 3, 0, 6]} +{"sent_id": [1, 3, 2, 4, 7, 0]} +{"sent_id": [10, 2, 0, 8, 1, 12]} +{"sent_id": [4, 10, 3, 6, 5, 8]} +{"sent_id": [3, 12, 2, 1, 0, 8]} +{"sent_id": [9, 4, 3, 7, 2, 14]} +{"sent_id": [6, 5, 2, 1, 13, 15]} +{"sent_id": [10, 4, 16, 1, 0, 3]} +{"sent_id": [4, 5, 8, 3, 2, 6]} +{"sent_id": [2, 6, 4, 1, 0, 15]} +{"sent_id": [0, 2, 4, 13, 16, 1]} +{"sent_id": [3, 4, 0, 6, 7, 8]} +{"sent_id": [4, 2, 5, 3, 1, 6]} +{"sent_id": [1, 0, 2, 3, 8, 9]} +{"sent_id": [0, 3, 1, 9, 2, 4]} +{"sent_id": [0, 3, 2, 1, 7, 4]} +{"sent_id": [3, 4, 8, 5, 6, 16]} +{"sent_id": [3, 2, 0, 8, 5, 6]} +{"sent_id": [1, 3, 2, 5, 13, 14]} +{"sent_id": [0, 1, 3, 2, 8, 13]} +{"sent_id": [0, 7, 1, 6, 3, 2]} +{"sent_id": [0, 3, 1, 2, 4, 16]} +{"sent_id": [4, 3, 5, 8, 1, 7]} +{"sent_id": [5, 8, 1, 6, 0, 2]} +{"sent_id": [1, 0, 2, 3, 4, 5]} +{"sent_id": [1, 2, 8, 6, 3, 0]} +{"sent_id": [1, 2, 5, 4, 13, 0]} +{"sent_id": [0, 2, 4, 5, 1, 12]} +{"sent_id": [1, 4, 7, 10, 13, 9]} +{"sent_id": [4, 0, 2, 12, 9, 14]} +{"sent_id": [8, 1, 0, 2, 11, 15]} +{"sent_id": [0, 1, 3, 12, 6, 2]} +{"sent_id": [0, 9, 1, 12, 2, 4]} +{"sent_id": [2, 0, 8, 3, 1, 13]} +{"sent_id": [3, 2, 1, 0, 5, 15]} +{"sent_id": [1, 3, 10, 4, 2, 6]} +{"sent_id": [5, 1, 2, 0, 11, 3]} +{"sent_id": [5, 4, 7, 2, 6, 1]} +{"sent_id": [5, 0, 7, 2, 4, 3]} +{"sent_id": [10, 22, 6, 11, 9, 20]} +{"sent_id": [1, 3, 4, 5, 2, 12]} +{"sent_id": [0, 2, 9, 1, 18, 10]} +{"sent_id": [1, 2, 5, 3, 4, 6]} +{"sent_id": [1, 3, 5, 2, 0, 4]} +{"sent_id": [3, 1, 2, 5, 15, 6]} +{"sent_id": [0, 2, 3, 4, 13, 5]} +{"sent_id": [1, 2, 4, 5, 0, 8]} +{"sent_id": [0, 3, 11, 1, 2, 4]} +{"sent_id": [2, 4, 5, 1, 3, 6]} +{"sent_id": [4, 2, 3, 5, 1, 13]} +{"sent_id": [2, 0, 1, 8, 14, 5]} +{"sent_id": [3, 1, 11, 2, 6, 4]} +{"sent_id": [1, 2, 0, 3, 4, 11]} +{"sent_id": [3, 1, 6, 4, 2, 11]} +{"sent_id": [2, 3, 14, 4, 5, 7]} +{"sent_id": [3, 1, 4, 12, 5, 2]} +{"sent_id": [0, 2, 1, 4, 10, 8]} +{"sent_id": [6, 3, 4, 5, 7, 1]} +{"sent_id": [3, 4, 8, 1, 17, 0]} +{"sent_id": [2, 1, 6, 0, 5, 4]} +{"sent_id": [2, 3, 4, 12, 5, 0]} +{"sent_id": [12, 10, 14, 7, 8, 9]} +{"sent_id": [2, 11, 0, 12, 3, 4]} +{"sent_id": [3, 0, 1, 12, 6, 8]} +{"sent_id": [3, 4, 2, 1, 10, 6]} +{"sent_id": [8, 0, 10, 1, 9, 6]} +{"sent_id": [3, 4, 11, 2, 1, 14]} +{"sent_id": [9, 1, 3, 0, 2, 7]} +{"sent_id": [3, 14, 1, 11, 2, 8]} +{"sent_id": [4, 2, 11, 1, 9, 0]} +{"sent_id": [5, 1, 4, 2, 6, 12]} +{"sent_id": [1, 5, 7, 11, 20, 2]} +{"sent_id": [2, 1, 6, 8, 5, 7]} +{"sent_id": [3, 1, 2, 10, 6, 0]} +{"sent_id": [1, 2, 3, 13, 5, 0]} +{"sent_id": [0, 11, 7, 6, 1, 8]} +{"sent_id": [1, 3, 2, 5, 14, 4]} +{"sent_id": [0, 3, 4, 1, 2, 12]} +{"sent_id": [9, 4, 0, 14, 6, 3]} +{"sent_id": [2, 1, 7, 6, 3, 5]} +{"sent_id": [7, 1, 2, 3, 5, 4]} +{"sent_id": [3, 2, 1, 19, 18, 12]} +{"sent_id": [0, 3, 13, 4, 14, 2]} +{"sent_id": [1, 4, 5, 2, 3, 0]} +{"sent_id": [5, 6, 4, 16, 0, 17]} +{"sent_id": [0, 3, 2, 15, 4, 1]} +{"sent_id": [1, 3, 2, 7, 6, 9]} +{"sent_id": [1, 6, 3, 2, 0, 4]} +{"sent_id": [1, 11, 12, 4, 2, 3]} +{"sent_id": [1, 2, 3, 0, 8, 5]} +{"sent_id": [3, 6, 1, 12, 4, 10]} +{"sent_id": [2, 1, 3, 11, 9, 4]} +{"sent_id": [1, 3, 2, 8, 11, 12]} +{"sent_id": [1, 3, 5, 2, 7, 4]} +{"sent_id": [3, 4, 1, 2, 14, 11]} +{"sent_id": [0, 5, 2, 6, 1, 13]} +{"sent_id": [3, 6, 1, 0, 2, 15]} +{"sent_id": [0, 19, 1, 3, 18, 4]} +{"sent_id": [1, 2, 5, 4, 0, 6]} +{"sent_id": [2, 1, 8, 4, 5, 0]} +{"sent_id": [2, 1, 3, 0, 10, 5]} +{"sent_id": [1, 11, 2, 3, 6, 0]} +{"sent_id": [2, 3, 5, 1, 0, 8]} +{"sent_id": [1, 2, 4, 5, 8, 0]} +{"sent_id": [2, 3, 4, 8, 7, 1]} +{"sent_id": [1, 2, 4, 3, 6, 8]} +{"sent_id": [3, 5, 0, 4, 12, 2]} +{"sent_id": [3, 15, 1, 0, 10, 5]} +{"sent_id": [3, 4, 2, 1, 7, 6]} +{"sent_id": [1, 2, 13, 0, 14, 12]} +{"sent_id": [2, 3, 1, 7, 9, 0]} +{"sent_id": [2, 1, 4, 12, 7, 3]} +{"sent_id": [9, 3, 1, 10, 2, 0]} +{"sent_id": [1, 0, 2, 4, 3, 10]} +{"sent_id": [0, 2, 3, 1, 4, 9]} +{"sent_id": [2, 3, 1, 0, 4, 10]} +{"sent_id": [2, 6, 3, 8, 7, 9]} +{"sent_id": [3, 2, 1, 20, 6, 17]} +{"sent_id": [0, 7, 1, 10, 11, 6]} +{"sent_id": [0, 1, 3, 2, 8, 5]} +{"sent_id": [4, 6, 5, 7, 3, 8]} +{"sent_id": [1, 3, 2, 6, 0, 18]} +{"sent_id": [2, 0, 1, 3, 11, 4]} +{"sent_id": [3, 5, 0, 10, 4, 2]} +{"sent_id": [3, 1, 4, 2, 7, 8]} +{"sent_id": [1, 2, 0, 6, 12, 7]} +{"sent_id": [3, 1, 15, 0, 4, 9]} +{"sent_id": [1, 3, 6, 4, 11, 0]} +{"sent_id": [3, 9, 0, 1, 4, 7]} +{"sent_id": [5, 15, 6, 0, 2, 3]} +{"sent_id": [3, 1, 4, 6, 5, 17]} +{"sent_id": [1, 4, 2, 5, 0, 10]} +{"sent_id": [0, 1, 2, 13, 5, 3]} +{"sent_id": [5, 4, 6, 7, 9, 12]} +{"sent_id": [2, 0, 1, 13, 7, 6]} +{"sent_id": [0, 1, 11, 4, 6, 2]} +{"sent_id": [15, 2, 6, 3, 0, 16]} +{"sent_id": [3, 0, 2, 1, 5, 4]} +{"sent_id": [3, 1, 0, 6, 8, 2]} +{"sent_id": [0, 1, 4, 10, 3, 8]} +{"sent_id": [0, 1, 3, 14, 4, 2]} +{"sent_id": [2, 0, 1, 3, 5, 8]} +{"sent_id": [2, 1, 5, 10, 0, 3]} +{"sent_id": [1, 0, 6, 2, 5, 4]} +{"sent_id": [1, 3, 2, 4, 9, 5]} +{"sent_id": [3, 1, 2, 5, 9, 0]} +{"sent_id": [0, 1, 3, 2, 14, 5]} +{"sent_id": [1, 6, 2, 3, 4, 0]} +{"sent_id": [2, 4, 7, 1, 9, 0]} +{"sent_id": [4, 3, 5, 6, 7, 0]} +{"sent_id": [4, 5, 11, 6, 12, 8]} +{"sent_id": [1, 2, 0, 5, 14, 9]} +{"sent_id": [6, 3, 7, 5, 8, 4]} +{"sent_id": [1, 3, 2, 4, 5, 6]} +{"sent_id": [3, 9, 6, 4, 2, 1]} +{"sent_id": [3, 0, 4, 1, 14, 7]} +{"sent_id": [2, 1, 5, 8, 6, 7]} +{"sent_id": [3, 2, 10, 5, 6, 13]} +{"sent_id": [1, 0, 2, 3, 9, 13]} +{"sent_id": [3, 1, 2, 4, 0, 8]} +{"sent_id": [3, 8, 0, 1, 7, 2]} +{"sent_id": [1, 2, 3, 4, 0, 5]} +{"sent_id": [4, 5, 3, 7, 9, 6]} +{"sent_id": [2, 4, 3, 0, 7, 5]} +{"sent_id": [1, 2, 3, 9, 8, 7]} +{"sent_id": [1, 3, 2, 0, 7, 4]} +{"sent_id": [3, 10, 2, 4, 5, 1]} +{"sent_id": [1, 10, 3, 4, 2, 0]} +{"sent_id": [1, 0, 2, 15, 5, 3]} +{"sent_id": [3, 1, 2, 8, 9, 6]} +{"sent_id": [5, 3, 6, 1, 2, 10]} +{"sent_id": [1, 3, 11, 2, 4, 8]} +{"sent_id": [1, 5, 2, 15, 3, 8]} +{"sent_id": [3, 4, 1, 17, 18, 10]} +{"sent_id": [2, 0, 1, 20, 9, 17]} +{"sent_id": [8, 4, 2, 1, 5, 12]} +{"sent_id": [9, 4, 6, 2, 7, 10]} +{"sent_id": [3, 0, 4, 1, 8, 12]} +{"sent_id": [3, 1, 0, 2, 9, 5]} +{"sent_id": [1, 3, 4, 7, 2, 5]} +{"sent_id": [2, 6, 0, 14, 12, 10]} +{"sent_id": [3, 1, 8, 4, 6, 5]} +{"sent_id": [4, 14, 2, 16, 10, 15]} +{"sent_id": [10, 5, 4, 1, 0, 2]} +{"sent_id": [3, 4, 2, 12, 10, 1]} +{"sent_id": [3, 1, 8, 2, 15, 7]} +{"sent_id": [2, 4, 6, 1, 10, 3]} +{"sent_id": [1, 2, 0, 6, 4, 10]} +{"sent_id": [3, 0, 1, 2, 6, 5]} +{"sent_id": [1, 4, 10, 6, 3, 16]} +{"sent_id": [0, 8, 2, 3, 5, 10]} +{"sent_id": [3, 1, 2, 15, 4, 5]} +{"sent_id": [3, 2, 0, 1, 7, 12]} +{"sent_id": [1, 2, 3, 5, 4, 6]} +{"sent_id": [1, 4, 6, 0, 10, 3]} +{"sent_id": [2, 1, 4, 6, 13, 5]} +{"sent_id": [2, 0, 3, 5, 6, 1]} +{"sent_id": [3, 1, 7, 2, 8, 0]} +{"sent_id": [6, 3, 10, 0, 1, 7]} +{"sent_id": [0, 1, 2, 8, 11, 5]} +{"sent_id": [0, 1, 17, 3, 6, 9]} +{"sent_id": [1, 2, 13, 3, 4, 5]} +{"sent_id": [3, 4, 13, 5, 19, 17]} +{"sent_id": [1, 3, 0, 2, 6, 12]} +{"sent_id": [1, 2, 8, 4, 5, 3]} +{"sent_id": [1, 2, 7, 8, 3, 5]} +{"sent_id": [8, 1, 0, 9, 4, 2]} +{"sent_id": [1, 0, 2, 4, 8, 7]} +{"sent_id": [2, 3, 1, 4, 9, 15]} +{"sent_id": [0, 8, 14, 9, 6, 11]} +{"sent_id": [2, 0, 11, 7, 1, 3]} +{"sent_id": [1, 2, 8, 7, 9, 0]} +{"sent_id": [5, 2, 0, 3, 9, 14]} +{"sent_id": [1, 2, 4, 10, 5, 13]} +{"sent_id": [1, 0, 3, 4, 2, 6]} +{"sent_id": [3, 9, 0, 14, 1, 2]} +{"sent_id": [13, 1, 5, 8, 2, 11]} +{"sent_id": [7, 1, 6, 3, 0, 11]} +{"sent_id": [2, 1, 0, 3, 6, 7]} +{"sent_id": [1, 0, 3, 6, 2, 5]} +{"sent_id": [1, 2, 3, 4, 0, 5]} +{"sent_id": [1, 2, 6, 4, 12, 7]} +{"sent_id": [3, 7, 4, 1, 2, 13]} +{"sent_id": [1, 5, 3, 7, 6, 2]} +{"sent_id": [3, 4, 2, 0, 13, 17]} +{"sent_id": [3, 1, 2, 9, 16, 5]} +{"sent_id": [3, 2, 0, 4, 1, 10]} +{"sent_id": [2, 0, 1, 5, 9, 10]} +{"sent_id": [1, 2, 0, 4, 5, 12]} +{"sent_id": [5, 3, 7, 4, 6, 15]} +{"sent_id": [1, 4, 8, 5, 2, 7]} +{"sent_id": [1, 2, 5, 3, 0, 8]} +{"sent_id": [0, 3, 2, 4, 11, 1]} +{"sent_id": [3, 1, 0, 2, 16, 5]} +{"sent_id": [1, 2, 3, 4, 5, 6]} +{"sent_id": [1, 2, 3, 4, 16, 0]} +{"sent_id": [19, 10, 4, 5, 2, 1]} +{"sent_id": [5, 6, 10, 3, 9, 2]} +{"sent_id": [1, 5, 0, 10, 17, 2]} +{"sent_id": [5, 2, 1, 6, 8, 3]} +{"sent_id": [19, 0, 4, 1, 10, 2]} +{"sent_id": [3, 6, 1, 2, 5, 4]} +{"sent_id": [3, 9, 1, 0, 8, 7]} +{"sent_id": [3, 1, 0, 2, 8, 17]} +{"sent_id": [2, 1, 5, 4, 6, 0]} +{"sent_id": [4, 0, 5, 1, 2, 3]} +{"sent_id": [2, 1, 6, 3, 4, 8]} +{"sent_id": [2, 1, 7, 0, 5, 4]} +{"sent_id": [1, 2, 0, 4, 6, 17]} +{"sent_id": [6, 1, 3, 5, 2, 18]} +{"sent_id": [1, 2, 4, 5, 9, 6]} +{"sent_id": [2, 1, 3, 7, 6, 5]} +{"sent_id": [2, 4, 3, 0, 12, 14]} +{"sent_id": [1, 2, 5, 4, 3, 12]} +{"sent_id": [1, 9, 3, 4, 2, 17]} +{"sent_id": [0, 5, 3, 1, 11, 18]} +{"sent_id": [1, 2, 0, 3, 10, 12]} +{"sent_id": [0, 1, 2, 11, 6, 3]} +{"sent_id": [0, 5, 7, 6, 3, 4]} +{"sent_id": [3, 4, 8, 0, 7, 2]} +{"sent_id": [0, 13, 1, 4, 8, 9]} +{"sent_id": [3, 2, 0, 4, 9, 5]} +{"sent_id": [2, 1, 3, 0, 6, 4]} +{"sent_id": [0, 2, 1, 3, 7, 9]} +{"sent_id": [1, 2, 3, 4, 11, 0]} +{"sent_id": [0, 10, 1, 2, 8, 4]} +{"sent_id": [3, 4, 13, 11, 7, 5]} +{"sent_id": [3, 2, 10, 6, 12, 1]} +{"sent_id": [2, 3, 12, 7, 6, 5]} +{"sent_id": [1, 5, 0, 8, 6, 7]} +{"sent_id": [1, 4, 2, 3, 5, 10]} +{"sent_id": [3, 6, 4, 0, 2, 5]} +{"sent_id": [5, 1, 2, 0, 3, 6]} +{"sent_id": [1, 0, 3, 4, 2, 5]} +{"sent_id": [3, 2, 5, 0, 4, 12]} +{"sent_id": [4, 2, 3, 10, 5, 1]} +{"sent_id": [11, 2, 5, 12, 7, 1]} +{"sent_id": [1, 3, 4, 15, 8, 0]} +{"sent_id": [2, 4, 3, 5, 12, 6]} +{"sent_id": [4, 5, 1, 9, 0, 3]} +{"sent_id": [2, 3, 8, 10, 0, 1]} +{"sent_id": [5, 2, 3, 1, 0, 4]} +{"sent_id": [4, 3, 1, 0, 2, 14]} +{"sent_id": [2, 1, 12, 3, 15, 0]} +{"sent_id": [0, 5, 4, 3, 2, 1]} +{"sent_id": [10, 0, 3, 14, 1, 5]} +{"sent_id": [0, 5, 6, 4, 11, 13]} +{"sent_id": [4, 3, 0, 5, 2, 1]} +{"sent_id": [1, 2, 3, 6, 14, 0]} +{"sent_id": [1, 4, 7, 0, 3, 2]} +{"sent_id": [0, 5, 2, 1, 16, 12]} +{"sent_id": [2, 3, 4, 8, 6, 12]} +{"sent_id": [3, 9, 8, 2, 10, 7]} +{"sent_id": [4, 1, 2, 15, 3, 0]} +{"sent_id": [3, 2, 0, 9, 4, 1]} +{"sent_id": [1, 3, 2, 13, 4, 18]} +{"sent_id": [1, 7, 4, 2, 8, 5]} +{"sent_id": [0, 3, 2, 12, 6, 5]} +{"sent_id": [3, 0, 4, 5, 9, 11]} +{"sent_id": [0, 8, 12, 15, 4, 10]} +{"sent_id": [1, 2, 3, 0, 8, 17]} +{"sent_id": [6, 11, 8, 3, 5, 1]} +{"sent_id": [1, 4, 12, 3, 0, 8]} +{"sent_id": [4, 8, 3, 5, 2, 10]} +{"sent_id": [0, 7, 2, 3, 12, 6]} +{"sent_id": [1, 3, 4, 2, 14, 0]} +{"sent_id": [1, 0, 3, 4, 2, 10]} +{"sent_id": [1, 2, 4, 5, 6, 0]} +{"sent_id": [1, 3, 8, 2, 4, 7]} +{"sent_id": [3, 16, 5, 1, 0, 4]} +{"sent_id": [1, 5, 3, 0, 2, 13]} +{"sent_id": [1, 3, 2, 19, 9, 5]} +{"sent_id": [3, 4, 6, 5, 2, 11]} +{"sent_id": [4, 2, 3, 1, 6, 0]} +{"sent_id": [3, 4, 11, 9, 10, 0]} +{"sent_id": [1, 3, 9, 10, 2, 0]} +{"sent_id": [1, 3, 0, 4, 2, 11]} +{"sent_id": [0, 5, 3, 4, 2, 14]} +{"sent_id": [4, 10, 13, 8, 0, 5]} +{"sent_id": [2, 3, 1, 7, 11, 8]} +{"sent_id": [3, 7, 0, 2, 8, 10]} +{"sent_id": [3, 20, 6, 9, 2, 11]} +{"sent_id": [0, 3, 11, 4, 1, 12]} +{"sent_id": [4, 7, 19, 27, 15, 26]} +{"sent_id": [1, 2, 0, 13, 12, 8]} +{"sent_id": [1, 5, 6, 4, 3, 11]} +{"sent_id": [1, 12, 0, 2, 4, 6]} +{"sent_id": [2, 4, 1, 3, 5, 13]} +{"sent_id": [6, 1, 5, 3, 2, 0]} +{"sent_id": [1, 4, 2, 0, 3, 14]} +{"sent_id": [3, 4, 1, 0, 2, 13]} +{"sent_id": [5, 2, 1, 4, 6, 0]} +{"sent_id": [13, 2, 4, 3, 0, 6]} +{"sent_id": [2, 8, 3, 4, 1, 6]} +{"sent_id": [10, 3, 2, 0, 11, 6]} +{"sent_id": [3, 1, 0, 2, 4, 6]} +{"sent_id": [0, 2, 4, 1, 5, 3]} +{"sent_id": [1, 2, 3, 6, 4, 7]} +{"sent_id": [2, 1, 0, 3, 5, 11]} +{"sent_id": [2, 3, 0, 17, 4, 11]} +{"sent_id": [0, 2, 1, 4, 3, 8]} +{"sent_id": [2, 4, 7, 10, 8, 0]} +{"sent_id": [1, 0, 3, 11, 6, 2]} +{"sent_id": [2, 3, 5, 4, 15, 17]} +{"sent_id": [3, 0, 4, 2, 1, 9]} +{"sent_id": [0, 1, 4, 2, 3, 13]} +{"sent_id": [2, 3, 5, 0, 1, 4]} +{"sent_id": [2, 1, 3, 9, 7, 0]} +{"sent_id": [2, 3, 4, 11, 0, 15]} +{"sent_id": [2, 4, 0, 8, 5, 9]} +{"sent_id": [3, 4, 8, 1, 12, 2]} +{"sent_id": [0, 22, 13, 1, 21, 3]} +{"sent_id": [3, 2, 1, 0, 13, 10]} +{"sent_id": [0, 2, 1, 7, 9, 3]} +{"sent_id": [0, 1, 20, 5, 2, 18]} +{"sent_id": [2, 1, 7, 11, 0, 8]} +{"sent_id": [7, 3, 0, 2, 1, 9]} +{"sent_id": [1, 0, 2, 3, 15, 6]} +{"sent_id": [3, 1, 2, 10, 0, 4]} +{"sent_id": [0, 1, 5, 8, 11, 7]} +{"sent_id": [0, 1, 2, 8, 4, 15]} +{"sent_id": [5, 2, 0, 9, 3, 1]} +{"sent_id": [1, 4, 2, 3, 14, 5]} +{"sent_id": [1, 4, 3, 0, 8, 7]} +{"sent_id": [0, 1, 10, 2, 3, 5]} +{"sent_id": [1, 2, 5, 4, 7, 0]} +{"sent_id": [2, 5, 0, 1, 9, 8]} +{"sent_id": [3, 1, 2, 0, 5, 4]} +{"sent_id": [0, 1, 9, 8, 4, 2]} +{"sent_id": [3, 2, 1, 6, 12, 11]} +{"sent_id": [8, 4, 10, 1, 7, 0]} +{"sent_id": [3, 1, 0, 2, 6, 4]} +{"sent_id": [3, 1, 5, 0, 8, 4]} +{"sent_id": [4, 3, 8, 0, 9, 11]} +{"sent_id": [2, 1, 4, 3, 13, 8]} +{"sent_id": [14, 3, 2, 6, 0, 5]} +{"sent_id": [3, 15, 1, 2, 4, 7]} +{"sent_id": [1, 7, 6, 0, 2, 11]} +{"sent_id": [1, 5, 0, 2, 14, 11]} +{"sent_id": [18, 1, 0, 5, 2, 17]} +{"sent_id": [3, 1, 4, 8, 10, 0]} +{"sent_id": [2, 0, 14, 7, 4, 3]} +{"sent_id": [5, 14, 1, 10, 0, 2]} +{"sent_id": [0, 2, 10, 7, 12, 3]} +{"sent_id": [3, 4, 1, 0, 2, 10]} +{"sent_id": [15, 1, 0, 4, 3, 17]} +{"sent_id": [2, 1, 5, 0, 6, 4]} +{"sent_id": [3, 10, 11, 4, 0, 7]} +{"sent_id": [1, 2, 4, 3, 13, 9]} +{"sent_id": [1, 3, 4, 12, 8, 2]} +{"sent_id": [1, 0, 13, 2, 3, 12]} +{"sent_id": [9, 0, 1, 10, 15, 5]} +{"sent_id": [12, 3, 0, 4, 6, 8]} +{"sent_id": [1, 3, 2, 5, 4, 9]} +{"sent_id": [8, 1, 0, 5, 7, 12]} +{"sent_id": [1, 2, 9, 3, 12, 4]} +{"sent_id": [1, 5, 2, 4, 17, 21]} +{"sent_id": [1, 7, 0, 2, 3, 10]} +{"sent_id": [1, 2, 0, 5, 3, 4]} +{"sent_id": [2, 1, 0, 4, 15, 6]} +{"sent_id": [1, 0, 2, 3, 6, 13]} +{"sent_id": [0, 1, 3, 4, 2, 5]} +{"sent_id": [1, 2, 5, 3, 4, 16]} +{"sent_id": [6, 0, 2, 11, 10, 1]} +{"sent_id": [0, 2, 1, 16, 3, 15]} +{"sent_id": [1, 16, 17, 3, 13, 9]} +{"sent_id": [2, 5, 10, 4, 0, 13]} +{"sent_id": [5, 12, 4, 6, 3, 9]} +{"sent_id": [7, 4, 0, 1, 5, 6]} +{"sent_id": [5, 7, 4, 3, 6, 2]} +{"sent_id": [2, 0, 5, 3, 6, 1]} +{"sent_id": [2, 1, 7, 0, 3, 12]} +{"sent_id": [1, 5, 0, 4, 3, 6]} +{"sent_id": [2, 3, 5, 14, 1, 0]} +{"sent_id": [3, 8, 4, 1, 6, 5]} +{"sent_id": [11, 0, 17, 3, 2, 19]} +{"sent_id": [3, 2, 15, 14, 17, 12]} +{"sent_id": [3, 2, 16, 4, 0, 6]} +{"sent_id": [1, 2, 6, 4, 3, 8]} +{"sent_id": [1, 3, 2, 5, 6, 11]} +{"sent_id": [3, 9, 4, 14, 12, 2]} +{"sent_id": [2, 4, 3, 17, 5, 1]} +{"sent_id": [1, 0, 9, 2, 6, 7]} +{"sent_id": [4, 6, 13, 16, 5, 14]} +{"sent_id": [1, 4, 2, 7, 6, 5]} +{"sent_id": [13, 4, 22, 1, 10, 0]} +{"sent_id": [2, 3, 7, 6, 4, 5]} +{"sent_id": [4, 1, 2, 0, 3, 15]} +{"sent_id": [3, 4, 13, 8, 5, 1]} +{"sent_id": [1, 9, 3, 5, 0, 2]} +{"sent_id": [3, 8, 0, 2, 1, 6]} +{"sent_id": [3, 4, 1, 0, 11, 5]} +{"sent_id": [1, 3, 12, 0, 5, 9]} +{"sent_id": [5, 1, 6, 3, 4, 2]} +{"sent_id": [2, 4, 0, 5, 9, 1]} +{"sent_id": [1, 2, 4, 11, 0, 3]} +{"sent_id": [5, 3, 0, 1, 6, 9]} +{"sent_id": [7, 8, 17, 16, 0, 6]} +{"sent_id": [0, 4, 1, 3, 2, 5]} +{"sent_id": [3, 0, 14, 4, 5, 9]} +{"sent_id": [5, 1, 0, 6, 8, 2]} +{"sent_id": [5, 4, 7, 13, 0, 3]} +{"sent_id": [3, 1, 2, 11, 4, 6]} +{"sent_id": [6, 3, 9, 16, 4, 7]} +{"sent_id": [2, 1, 3, 0, 4, 10]} +{"sent_id": [1, 4, 14, 5, 3, 15]} +{"sent_id": [4, 1, 2, 9, 5, 8]} +{"sent_id": [0, 3, 11, 7, 2, 15]} +{"sent_id": [4, 3, 5, 8, 11, 0]} +{"sent_id": [1, 3, 2, 6, 10, 17]} +{"sent_id": [4, 0, 12, 5, 6, 13]} +{"sent_id": [1, 2, 4, 17, 8, 3]} +{"sent_id": [2, 12, 4, 11, 1, 7]} +{"sent_id": [2, 1, 6, 3, 0, 4]} +{"sent_id": [0, 5, 2, 13, 4, 8]} +{"sent_id": [3, 12, 0, 1, 2, 13]} +{"sent_id": [1, 3, 2, 13, 6, 4]} +{"sent_id": [1, 6, 5, 2, 4, 10]} +{"sent_id": [4, 10, 5, 1, 7, 12]} +{"sent_id": [2, 5, 8, 11, 6, 1]} +{"sent_id": [1, 3, 2, 9, 0, 6]} +{"sent_id": [1, 2, 4, 3, 5, 15]} +{"sent_id": [11, 12, 2, 1, 0, 8]} +{"sent_id": [0, 1, 10, 11, 3, 2]} +{"sent_id": [8, 14, 1, 6, 3, 2]} +{"sent_id": [1, 0, 7, 10, 11, 14]} +{"sent_id": [3, 2, 4, 5, 6, 1]} +{"sent_id": [0, 4, 2, 5, 9, 8]} +{"sent_id": [3, 4, 5, 13, 12, 2]} +{"sent_id": [4, 2, 9, 8, 5, 6]} +{"sent_id": [0, 3, 13, 4, 8, 1]} +{"sent_id": [0, 1, 8, 2, 5, 3]} +{"sent_id": [5, 2, 1, 9, 13, 12]} +{"sent_id": [1, 0, 7, 13, 4, 5]} +{"sent_id": [5, 17, 16, 2, 1, 10]} +{"sent_id": [2, 8, 9, 1, 0, 3]} +{"sent_id": [1, 5, 0, 2, 20, 7]} +{"sent_id": [1, 4, 3, 2, 0, 8]} +{"sent_id": [3, 1, 2, 5, 4, 12]} +{"sent_id": [0, 2, 3, 1, 8, 11]} +{"sent_id": [4, 12, 3, 11, 6, 5]} +{"sent_id": [3, 2, 1, 4, 0, 5]} +{"sent_id": [1, 2, 7, 3, 8, 0]} +{"sent_id": [3, 4, 2, 15, 5, 1]} +{"sent_id": [2, 5, 6, 9, 0, 1]} +{"sent_id": [1, 2, 12, 0, 17, 14]} +{"sent_id": [2, 5, 3, 4, 6, 0]} +{"sent_id": [3, 1, 0, 4, 5, 9]} +{"sent_id": [2, 0, 1, 4, 3, 5]} +{"sent_id": [1, 6, 2, 7, 8, 0]} +{"sent_id": [3, 1, 4, 5, 2, 6]} +{"sent_id": [3, 6, 1, 0, 2, 15]} +{"sent_id": [0, 14, 22, 15, 2, 1]} +{"sent_id": [1, 6, 2, 8, 3, 7]} +{"sent_id": [2, 0, 1, 8, 6, 4]} +{"sent_id": [4, 3, 2, 1, 0, 11]} +{"sent_id": [1, 2, 3, 7, 4, 6]} +{"sent_id": [0, 1, 4, 12, 3, 13]} +{"sent_id": [0, 3, 2, 10, 1, 4]} +{"sent_id": [1, 3, 13, 7, 4, 2]} +{"sent_id": [3, 11, 5, 2, 1, 0]} +{"sent_id": [1, 8, 0, 2, 3, 15]} +{"sent_id": [1, 2, 3, 10, 0, 9]} +{"sent_id": [1, 0, 3, 4, 16, 10]} +{"sent_id": [3, 4, 5, 8, 6, 10]} +{"sent_id": [1, 3, 7, 0, 13, 4]} +{"sent_id": [2, 3, 8, 4, 5, 14]} +{"sent_id": [1, 0, 2, 16, 11, 4]} +{"sent_id": [3, 2, 0, 1, 10, 9]} +{"sent_id": [1, 2, 7, 6, 13, 3]} +{"sent_id": [0, 2, 12, 6, 1, 8]} +{"sent_id": [10, 16, 4, 3, 11, 13]} +{"sent_id": [4, 5, 16, 7, 2, 1]} +{"sent_id": [1, 2, 4, 14, 0, 15]} +{"sent_id": [3, 1, 0, 2]} +{"sent_id": [2, 1, 11, 3, 14, 8]} +{"sent_id": [15, 1, 4, 2, 6, 7]} +{"sent_id": [3, 1, 5, 15, 4, 13]} +{"sent_id": [1, 2, 14, 0, 4, 3]} +{"sent_id": [1, 17, 5, 0, 4, 3]} +{"sent_id": [3, 4, 0, 2, 1, 7]} +{"sent_id": [2, 4, 1, 5, 7, 6]} +{"sent_id": [0, 2, 3, 19, 1, 5]} +{"sent_id": [0, 1, 3, 4, 2, 8]} +{"sent_id": [3, 1, 0, 2, 6, 5]} +{"sent_id": [4, 10, 13, 12, 3, 2]} +{"sent_id": [1, 3, 2, 5, 4, 0]} +{"sent_id": [8, 2, 4, 15, 3, 5]} +{"sent_id": [1, 6, 9, 11, 7, 8]} +{"sent_id": [13, 1, 4, 6, 0, 5]} +{"sent_id": [1, 2, 7, 3, 4, 16]} +{"sent_id": [1, 3, 2, 4, 7, 13]} +{"sent_id": [7, 8, 0, 16, 10, 2]} +{"sent_id": [2, 5, 1, 6, 3, 11]} +{"sent_id": [13, 9, 5, 0, 3, 4]} +{"sent_id": [2, 1, 8, 15, 0, 3]} +{"sent_id": [3, 1, 4, 2, 0, 11]} +{"sent_id": [1, 4, 5, 2, 0, 6]} +{"sent_id": [2, 4, 3, 5, 8, 7]} +{"sent_id": [3, 10, 4, 6, 9, 1]} +{"sent_id": [2, 3, 1, 0, 14, 5]} +{"sent_id": [10, 2, 15, 3, 12, 16]} +{"sent_id": [2, 3, 4, 13, 5, 0]} +{"sent_id": [3, 13, 1, 2, 4, 10]} +{"sent_id": [6, 4, 5, 3, 2, 10]} +{"sent_id": [4, 0, 12, 8, 9, 2]} +{"sent_id": [5, 6, 0, 1, 12, 13]} +{"sent_id": [6, 3, 2, 1, 0, 4]} +{"sent_id": [4, 3, 0, 5, 1, 2]} +{"sent_id": [3, 1, 14, 2, 5, 4]} +{"sent_id": [2, 5, 4, 1, 9, 12]} +{"sent_id": [2, 4, 1, 5, 3, 7]} +{"sent_id": [2, 3, 4, 14, 8, 15]} +{"sent_id": [2, 1, 4, 5, 8, 7]} +{"sent_id": [4, 1, 2, 6, 5, 3]} +{"sent_id": [4, 5, 0, 2, 13, 3]} +{"sent_id": [1, 3, 2, 4, 11, 0]} +{"sent_id": [0, 11, 1, 7, 3, 4]} +{"sent_id": [3, 0, 13, 7, 1, 4]} +{"sent_id": [1, 4, 2, 9, 5, 0]} +{"sent_id": [4, 1, 2, 3, 7, 6]} +{"sent_id": [3, 1, 2, 4, 0, 7]} +{"sent_id": [10, 1, 3, 2, 4, 11]} +{"sent_id": [1, 2, 4, 11, 7, 6]} +{"sent_id": [1, 8, 2, 3, 7, 6]} +{"sent_id": [1, 3, 8, 10, 4, 11]} +{"sent_id": [3, 4, 1, 5, 9, 10]} +{"sent_id": [1, 9, 0, 2, 3, 4]} +{"sent_id": [1, 6, 7, 13, 12, 5]} +{"sent_id": [3, 2, 11, 1, 6, 21]} +{"sent_id": [4, 10, 3, 14, 1, 5]} +{"sent_id": [1, 2, 0, 10, 8, 7]} +{"sent_id": [3, 2, 1, 5, 6, 14]} +{"sent_id": [1, 2, 12, 4, 7, 6]} +{"sent_id": [4, 0, 10, 8, 2, 3]} +{"sent_id": [1, 3, 2, 4, 7, 6]} +{"sent_id": [1, 2, 7, 5, 0, 4]} +{"sent_id": [4, 0, 2, 3, 1, 16]} +{"sent_id": [1, 3, 4, 2, 0, 7]} +{"sent_id": [3, 0, 11, 4, 1, 5]} +{"sent_id": [1, 0, 5, 4, 10, 3]} +{"sent_id": [3, 0, 8, 4, 2, 1]} +{"sent_id": [1, 10, 2, 3, 4, 0]} +{"sent_id": [2, 3, 14, 7, 1, 0]} +{"sent_id": [2, 7, 6, 0, 1, 5]} +{"sent_id": [6, 2, 3, 1, 0, 5]} +{"sent_id": [1, 5, 4, 2, 0, 10]} +{"sent_id": [3, 2, 9, 10, 13, 11]} +{"sent_id": [2, 0, 4, 3, 5, 1]} +{"sent_id": [0, 1, 6, 7, 11, 5]} +{"sent_id": [2, 4, 1, 5, 0, 13]} +{"sent_id": [3, 12, 1, 6, 0, 13]} +{"sent_id": [0, 2, 10, 1, 5, 14]} +{"sent_id": [0, 4, 5, 3, 12, 1]} +{"sent_id": [3, 4, 1, 10, 2, 7]} +{"sent_id": [1, 5, 13, 14, 2, 0]} +{"sent_id": [2, 0, 10, 7, 1, 3]} +{"sent_id": [2, 1, 0, 5, 7, 4]} +{"sent_id": [1, 7, 2, 6, 12, 0]} +{"sent_id": [5, 6, 10, 12, 2, 8]} +{"sent_id": [4, 1, 6, 15, 8, 7]} +{"sent_id": [2, 1, 6, 5, 11, 4]} +{"sent_id": [4, 1, 0, 2, 3, 7]} +{"sent_id": [0, 3, 10, 1, 13, 2]} +{"sent_id": [4, 1, 15, 3, 2, 9]} +{"sent_id": [0, 14, 18, 3, 8, 13]} +{"sent_id": [12, 3, 2, 11, 7, 0]} +{"sent_id": [3, 8, 1, 0, 6, 4]} +{"sent_id": [3, 2, 1, 6, 5, 4]} +{"sent_id": [1, 9, 3, 17, 7, 4]} +{"sent_id": [1, 8, 2, 4, 9, 0]} +{"sent_id": [12, 10, 0, 13, 11, 16]} +{"sent_id": [1, 8, 9, 2, 4, 3]} +{"sent_id": [3, 1, 18, 0, 12, 2]} +{"sent_id": [1, 0, 3, 4, 2, 6]} +{"sent_id": [7, 11, 1, 0, 4, 5]} +{"sent_id": [3, 5, 1, 2, 8, 0]} +{"sent_id": [1, 2, 4, 3, 8, 0]} +{"sent_id": [3, 2, 4, 8, 1, 0]} +{"sent_id": [10, 3, 0, 1, 6, 2]} +{"sent_id": [1, 3, 4, 0, 2, 14]} +{"sent_id": [1, 13, 3, 9, 8, 2]} +{"sent_id": [3, 2, 1, 12, 9, 11]} +{"sent_id": [0, 14, 9, 3, 2, 13]} +{"sent_id": [5, 2, 1, 0, 10, 12]} +{"sent_id": [3, 0, 4, 16, 6, 1]} +{"sent_id": [1, 0, 4, 2, 9, 6]} +{"sent_id": [3, 7, 8, 18, 2, 10]} +{"sent_id": [1, 0, 7, 14, 6, 2]} +{"sent_id": [2, 6, 3, 4, 5, 12]} +{"sent_id": [1, 4, 5, 2, 3, 18]} +{"sent_id": [1, 5, 4, 3, 8, 13]} +{"sent_id": [1, 2, 5, 6, 7, 4]} +{"sent_id": [1, 5, 6, 0, 2, 11]} +{"sent_id": [1, 16, 0, 3, 4, 2]} +{"sent_id": [2, 3, 5, 4, 6, 0]} +{"sent_id": [3, 1, 11, 4, 7, 2]} +{"sent_id": [5, 7, 9, 0, 11, 4]} +{"sent_id": [0, 3, 4, 10, 5, 12]} +{"sent_id": [2, 0, 7, 11, 4, 6]} +{"sent_id": [3, 1, 0, 2, 4, 5]} +{"sent_id": [1, 3, 2, 4, 6, 5]} +{"sent_id": [2, 1, 9, 4, 3, 10]} +{"sent_id": [1, 2, 0, 5, 4, 3]} +{"sent_id": [1, 5, 0, 2, 7, 6]} +{"sent_id": [1, 4, 8, 3, 2, 9]} +{"sent_id": [0, 1, 2, 11, 9, 4]} +{"sent_id": [0, 2, 4, 3, 1, 6]} +{"sent_id": [1, 3, 10, 6, 11, 2]} +{"sent_id": [3, 12, 4, 2, 10, 15]} +{"sent_id": [0, 4, 3, 2, 1, 10]} +{"sent_id": [3, 4, 2, 10, 7, 12]} +{"sent_id": [3, 17, 1, 7, 4, 19]} +{"sent_id": [6, 8, 3, 7, 15, 5]} +{"sent_id": [2, 3, 5, 6, 4, 13]} +{"sent_id": [9, 0, 19, 8, 20, 11]} +{"sent_id": [0, 4, 5, 19, 1, 2]} +{"sent_id": [0, 4, 8, 2, 5, 7]} +{"sent_id": [1, 2, 0, 5, 4, 12]} +{"sent_id": [3, 1, 6, 4, 5, 17]} +{"sent_id": [0, 7, 1, 2, 9, 10]} +{"sent_id": [4, 5, 11, 0, 3, 7]} +{"sent_id": [4, 3, 2, 1, 6, 5]} +{"sent_id": [3, 1, 2, 0, 13, 4]} +{"sent_id": [2, 3, 0, 12, 4, 1]} +{"sent_id": [4, 3, 5, 1, 0, 6]} +{"sent_id": [1, 2, 13, 5, 11, 4]} +{"sent_id": [1, 2, 3, 5, 10, 9]} +{"sent_id": [1, 2, 3, 0, 6, 10]} +{"sent_id": [5, 4, 2, 0, 6, 7]} +{"sent_id": [4, 1, 3, 0, 10, 17]} +{"sent_id": [9, 0, 2, 1, 5, 3]} +{"sent_id": [1, 5, 2, 0, 4, 3]} +{"sent_id": [1, 0, 5, 2, 7, 8]} +{"sent_id": [11, 13, 4, 0, 2, 5]} +{"sent_id": [4, 5, 6, 3, 14, 8]} +{"sent_id": [0, 1, 3, 2, 18, 11]} +{"sent_id": [3, 7, 4, 1, 2, 0]} +{"sent_id": [3, 0, 8, 13, 1, 2]} +{"sent_id": [1, 2, 5, 14, 6, 9]} +{"sent_id": [2, 3, 4, 5, 7, 6]} +{"sent_id": [4, 0, 1, 3, 6, 2]} +{"sent_id": [11, 10, 6, 15, 12, 3]} +{"sent_id": [1, 4, 6, 2, 7, 16]} +{"sent_id": [6, 11, 15, 4, 5, 3]} +{"sent_id": [1, 2, 5, 7, 8, 0]} +{"sent_id": [2, 1, 4, 6, 11, 5]} +{"sent_id": [2, 1, 3, 9, 8, 15]} +{"sent_id": [1, 2, 3, 7, 4, 8]} +{"sent_id": [1, 4, 5, 2, 6, 9]} +{"sent_id": [2, 1, 3, 4, 5, 6]} +{"sent_id": [4, 3, 8, 1, 9, 2]} +{"sent_id": [1, 8, 2, 5, 3, 9]} +{"sent_id": [5, 3, 4, 2, 1, 14]} +{"sent_id": [1, 2, 3, 12, 6, 14]} +{"sent_id": [4, 5, 6, 3, 15, 2]} +{"sent_id": [9, 8, 6, 4, 0, 18]} +{"sent_id": [1, 7, 4, 2, 3, 0]} +{"sent_id": [6, 1, 15, 13, 0, 7]} +{"sent_id": [1, 3, 4, 7, 0, 6]} +{"sent_id": [3, 5, 11, 4, 2, 14]} +{"sent_id": [9, 3, 1, 4, 5, 0]} +{"sent_id": [9, 11, 10, 7, 12, 13]} +{"sent_id": [3, 14, 2, 7, 1, 0]} +{"sent_id": [1, 0, 2, 8, 16, 3]} +{"sent_id": [2, 1, 10, 3, 4, 9]} +{"sent_id": [1, 3, 4, 2, 11, 0]} +{"sent_id": [1, 4, 2, 10, 0, 5]} +{"sent_id": [3, 11, 9, 0, 17, 13]} +{"sent_id": [1, 2, 6, 11, 9, 0]} +{"sent_id": [2, 4, 1, 3, 16, 11]} +{"sent_id": [3, 1, 4, 2, 0, 5]} +{"sent_id": [1, 3, 11, 8, 5, 4]} +{"sent_id": [0, 4, 12, 5, 3, 6]} +{"sent_id": [0, 14, 1, 13, 3, 4]} +{"sent_id": [1, 2, 4, 0, 3, 6]} +{"sent_id": [3, 9, 1, 2, 7, 4]} +{"sent_id": [2, 3, 0, 4, 5, 17]} +{"sent_id": [1, 3, 0, 9, 12, 7]} +{"sent_id": [3, 1, 9, 2, 12, 0]} +{"sent_id": [4, 1, 9, 2, 6, 5]} +{"sent_id": [2, 6, 10, 3, 11, 5]} +{"sent_id": [1, 3, 2, 4, 8, 10]} +{"sent_id": [1, 2, 0, 3, 4, 11]} +{"sent_id": [3, 1, 4, 0, 5, 2]} +{"sent_id": [11, 4, 1, 0, 3, 5]} +{"sent_id": [0, 1, 3, 13, 2, 16]} +{"sent_id": [5, 4, 1, 13, 7, 2]} +{"sent_id": [4, 3, 2, 1, 12, 18]} +{"sent_id": [2, 0, 6, 16, 7, 17]} +{"sent_id": [6, 4, 3, 7, 1, 2]} +{"sent_id": [4, 1, 5, 3, 2, 16]} +{"sent_id": [3, 2, 4, 1, 5, 7]} +{"sent_id": [8, 9, 10, 4, 2, 16]} +{"sent_id": [1, 7, 2, 4, 0, 14]} +{"sent_id": [3, 2, 0, 12, 1, 10]} +{"sent_id": [0, 4, 15, 12, 3, 1]} +{"sent_id": [1, 2, 4, 6, 10, 7]} +{"sent_id": [2, 1, 3, 12, 4, 7]} +{"sent_id": [2, 6, 4, 1, 5, 3]} +{"sent_id": [1, 2, 7, 3, 0, 8]} +{"sent_id": [1, 3, 13, 4, 2, 0]} +{"sent_id": [4, 1, 0, 2, 5, 17]} +{"sent_id": [4, 3, 2, 9, 0, 7]} +{"sent_id": [7, 3, 4, 16, 10, 6]} +{"sent_id": [2, 3, 4, 0, 9, 6]} +{"sent_id": [1, 6, 2, 13, 0, 3]} +{"sent_id": [1, 2, 3, 8, 6, 17]} +{"sent_id": [11, 10, 4, 3, 2, 0]} +{"sent_id": [13, 3, 0, 2, 12, 14]} +{"sent_id": [3, 1, 2, 7, 6, 8]} +{"sent_id": [4, 5, 6, 7, 12, 10]} +{"sent_id": [3, 1, 5, 2, 4, 10]} +{"sent_id": [3, 2, 1, 6, 7, 5]} +{"sent_id": [1, 2, 3, 5, 7, 6]} +{"sent_id": [2, 4, 6, 11, 0, 1]} +{"sent_id": [1, 7, 2, 0, 3, 4]} +{"sent_id": [2, 0, 3, 13, 5, 1]} +{"sent_id": [0, 1, 2, 6, 5, 8]} +{"sent_id": [2, 3, 5, 4, 6, 8]} +{"sent_id": [1, 2, 9, 12, 10, 0]} +{"sent_id": [3, 5, 0, 6, 1, 18]} +{"sent_id": [0, 3, 10, 11, 1, 2]} +{"sent_id": [4, 6, 0, 5, 12, 9]} +{"sent_id": [0, 1, 2, 3, 4, 5]} +{"sent_id": [3, 2, 1, 15, 4, 16]} +{"sent_id": [3, 2, 5, 9, 14, 7]} +{"sent_id": [2, 3, 16, 1, 0, 6]} +{"sent_id": [3, 15, 12, 0, 1, 2]} +{"sent_id": [1, 2, 4, 7, 9, 5]} +{"sent_id": [1, 8, 2, 3, 7, 5]} +{"sent_id": [0, 4, 20, 2, 1, 6]} +{"sent_id": [3, 0, 1, 6, 5, 2]} +{"sent_id": [1, 2, 3, 16, 0, 11]} +{"sent_id": [1, 7, 0, 6, 10, 3]} +{"sent_id": [2, 0, 9, 3, 4, 12]} +{"sent_id": [1, 2, 3, 12, 5, 6]} +{"sent_id": [2, 1, 0, 8, 9, 10]} +{"sent_id": [1, 2, 8, 6, 9, 12]} +{"sent_id": [1, 13, 9, 10, 0, 3]} +{"sent_id": [6, 2, 13, 0, 11, 7]} +{"sent_id": [1, 7, 11, 13, 5, 4]} +{"sent_id": [9, 13, 1, 3, 11, 7]} +{"sent_id": [3, 0, 1, 4, 2, 13]} +{"sent_id": [1, 4, 3, 0, 5, 2]} +{"sent_id": [2, 9, 10, 1, 14, 11]} +{"sent_id": [3, 6, 2, 9, 4, 0]} +{"sent_id": [2, 4, 15, 7, 5, 3]} +{"sent_id": [3, 1, 9, 6, 4, 8]} +{"sent_id": [1, 9, 2, 3, 5, 17]} +{"sent_id": [0, 3, 2, 1, 12, 6]} +{"sent_id": [2, 3, 0, 4, 5, 11]} +{"sent_id": [2, 1, 3, 8, 12, 9]} +{"sent_id": [3, 5, 2, 1, 13, 12]} +{"sent_id": [5, 3, 1, 0, 2, 4]} +{"sent_id": [1, 4, 3, 0, 14, 5]} +{"sent_id": [0, 1, 2, 8, 3, 9]} +{"sent_id": [1, 0, 3, 2, 5, 9]} +{"sent_id": [4, 3, 2, 1, 8, 9]} +{"sent_id": [8, 18, 2, 1, 14, 3]} +{"sent_id": [3, 0, 1, 2, 4, 12]} +{"sent_id": [1, 2, 5, 14, 3, 0]} +{"sent_id": [2, 3, 4, 15, 5, 7]} +{"sent_id": [3, 0, 1, 2, 5, 4]} +{"sent_id": [1, 4, 0, 2, 3, 7]} +{"sent_id": [2, 9, 3, 0, 4, 5]} +{"sent_id": [1, 11, 7, 6, 5, 4]} +{"sent_id": [0, 13, 6, 14, 11, 9]} +{"sent_id": [3, 0, 2, 12, 1, 5]} +{"sent_id": [3, 0, 2, 9, 8, 1]} +{"sent_id": [3, 2, 1, 10, 4, 11]} +{"sent_id": [3, 6, 1, 2, 5, 17]} +{"sent_id": [7, 4, 0, 11, 14, 13]} +{"sent_id": [1, 2, 0, 12, 8, 7]} +{"sent_id": [1, 4, 2, 5, 7, 3]} +{"sent_id": [0, 7, 10, 2, 3, 4]} +{"sent_id": [3, 4, 5, 1, 7, 6]} +{"sent_id": [1, 3, 2, 9, 4, 5]} +{"sent_id": [2, 1, 9, 6, 8, 15]} +{"sent_id": [4, 3, 2, 1, 15, 13]} +{"sent_id": [4, 1, 10, 13, 2, 0]} +{"sent_id": [11, 16, 3, 2, 0, 1]} +{"sent_id": [1, 2, 0, 4, 10, 9]} +{"sent_id": [3, 2, 0, 4, 5, 1]} +{"sent_id": [3, 7, 11, 9, 2, 6]} +{"sent_id": [3, 2, 4, 5, 6, 7]} +{"sent_id": [5, 1, 2, 3, 4, 6]} +{"sent_id": [3, 4, 0, 1, 2, 6]} +{"sent_id": [0, 12, 5, 13, 6, 1]} +{"sent_id": [1, 8, 3, 0, 9, 10]} +{"sent_id": [1, 7, 3, 5, 2, 4]} +{"sent_id": [0, 12, 1, 2, 8, 3]} +{"sent_id": [1, 3, 2, 4, 6, 10]} +{"sent_id": [1, 0, 5, 13, 4, 6]} +{"sent_id": [0, 3, 2, 1, 8, 18]} +{"sent_id": [2, 0, 3, 10, 1, 6]} +{"sent_id": [6, 9, 5, 0, 2, 1]} +{"sent_id": [0, 1, 2, 3, 8, 7]} +{"sent_id": [3, 1, 10, 4, 0, 2]} +{"sent_id": [2, 1, 4, 12, 0, 8]} +{"sent_id": [0, 4, 1, 3, 2]} +{"sent_id": [3, 1, 0, 4, 9, 11]} +{"sent_id": [3, 1, 4, 0, 9, 12]} +{"sent_id": [2, 0, 1, 19, 3, 15]} +{"sent_id": [1, 2, 5, 6, 0, 7]} +{"sent_id": [9, 5, 1, 4, 2, 0]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [4, 0, 1, 5, 2, 3]} +{"sent_id": [1, 0, 9, 3, 11, 6]} +{"sent_id": [1, 2, 5, 6, 4, 3]} +{"sent_id": [7, 8, 6, 2, 3, 9]} +{"sent_id": [2, 3, 5, 4, 6, 0]} +{"sent_id": [1, 5, 2, 6, 3, 4]} +{"sent_id": [4, 1, 2, 3, 6, 0]} +{"sent_id": [4, 1, 2, 8, 6, 0]} +{"sent_id": [3, 1, 13, 0, 4, 7]} +{"sent_id": [1, 0, 4, 2, 6, 5]} +{"sent_id": [1, 2, 3, 4, 11, 8]} +{"sent_id": [1, 7, 16, 0, 11, 9]} +{"sent_id": [0, 4, 1, 2, 13, 12]} +{"sent_id": [1, 0, 13, 4, 8, 11]} +{"sent_id": [2, 12, 3, 1, 4, 5]} +{"sent_id": [1, 2, 3, 0, 8, 6]} +{"sent_id": [0, 1, 4, 10, 13, 5]} +{"sent_id": [5, 3, 14, 2, 7, 4]} +{"sent_id": [2, 1, 4, 5, 7, 3]} +{"sent_id": [0, 1, 2, 5, 19, 6]} +{"sent_id": [3, 1, 10, 2, 7, 9]} +{"sent_id": [1, 4, 10, 11, 0, 5]} +{"sent_id": [5, 4, 14, 0, 11, 10]} +{"sent_id": [5, 0, 1, 10, 2, 15]} +{"sent_id": [2, 3, 0, 8, 5, 7]} +{"sent_id": [0, 4, 3, 5, 6, 9]} +{"sent_id": [2, 6, 1, 8, 5, 4]} +{"sent_id": [3, 1, 2, 8, 4, 12]} +{"sent_id": [6, 3, 2, 5, 14, 13]} +{"sent_id": [0, 4, 3, 1, 12, 11]} +{"sent_id": [1, 2, 4, 3, 9, 15]} +{"sent_id": [0, 3, 4, 5, 12, 1]} +{"sent_id": [4, 3, 6, 5, 1, 7]} +{"sent_id": [1, 3, 13, 4, 0, 2]} +{"sent_id": [1, 2, 4, 0, 9, 7]} +{"sent_id": [2, 0, 1, 3, 4, 5]} +{"sent_id": [2, 3, 5, 4, 12, 0]} +{"sent_id": [2, 5, 1, 3, 4, 0]} +{"sent_id": [8, 3, 0, 1, 2, 4]} +{"sent_id": [3, 5, 1, 4, 0, 16]} +{"sent_id": [3, 2, 13, 5, 8, 6]} +{"sent_id": [3, 9, 4, 1, 2, 0]} +{"sent_id": [1, 10, 0, 3, 9, 2]} +{"sent_id": [4, 6, 9, 2, 1, 18]} +{"sent_id": [2, 1, 12, 6, 0, 8]} +{"sent_id": [2, 0, 4, 3, 5, 1]} +{"sent_id": [1, 2, 3, 4, 0, 5]} +{"sent_id": [3, 2, 1, 4, 7, 5]} +{"sent_id": [1, 2, 4, 5, 11, 0]} +{"sent_id": [3, 2, 1, 15, 4, 9]} +{"sent_id": [2, 3, 1, 6, 8, 13]} +{"sent_id": [2, 4, 9, 11, 1, 5]} +{"sent_id": [0, 1, 5, 2, 10, 11]} +{"sent_id": [5, 1, 6, 0, 2, 9]} +{"sent_id": [2, 1, 4, 3, 5, 15]} +{"sent_id": [2, 5, 12, 6, 1, 9]} +{"sent_id": [1, 2, 3, 5, 8, 4]} +{"sent_id": [1, 2, 3, 4, 15, 16]} +{"sent_id": [3, 4, 13, 5, 14, 2]} +{"sent_id": [2, 1, 3, 6, 0, 11]} +{"sent_id": [3, 2, 12, 11, 4, 6]} +{"sent_id": [0, 1, 3, 2, 25, 5]} +{"sent_id": [1, 3, 5, 2, 8, 7]} +{"sent_id": [3, 2, 1, 5, 4, 6]} +{"sent_id": [1, 0, 2, 5, 4, 3]} +{"sent_id": [10, 1, 0, 2, 4, 3]} +{"sent_id": [2, 1, 5, 11, 6, 4]} +{"sent_id": [4, 2, 0, 3, 5, 6]} +{"sent_id": [0, 3, 2, 1, 6, 4]} +{"sent_id": [0, 3, 8, 2, 12, 4]} +{"sent_id": [4, 11, 2, 3, 0, 1]} +{"sent_id": [1, 4, 8, 7, 5, 14]} +{"sent_id": [0, 1, 3, 8, 2, 9]} +{"sent_id": [4, 0, 14, 1, 3, 2]} +{"sent_id": [2, 1, 7, 6, 3, 5]} +{"sent_id": [1, 2, 0, 3, 7, 11]} +{"sent_id": [2, 0, 6, 3, 7, 1]} +{"sent_id": [3, 1, 9, 2, 7, 4]} +{"sent_id": [1, 2, 3, 7, 4, 6]} +{"sent_id": [2, 1, 4, 0, 14, 3]} +{"sent_id": [3, 0, 8, 2, 4, 12]} +{"sent_id": [4, 5, 13, 6, 11, 2]} +{"sent_id": [2, 0, 1, 8, 3, 11]} +{"sent_id": [0, 3, 2, 13, 1, 7]} +{"sent_id": [0, 3, 1, 4, 10, 13]} +{"sent_id": [1, 2, 9, 10, 3, 0]} +{"sent_id": [1, 2, 3, 4, 5, 7]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [2, 0, 1, 6, 7, 12]} +{"sent_id": [3, 1, 2, 14, 4, 0]} +{"sent_id": [0, 2, 7, 3, 1, 8]} +{"sent_id": [2, 8, 1, 9, 0, 3]} +{"sent_id": [1, 6, 2, 5, 3, 9]} +{"sent_id": [4, 2, 3, 5, 14, 10]} +{"sent_id": [4, 1, 13, 0, 7, 2]} +{"sent_id": [1, 0, 12, 3, 4, 2]} +{"sent_id": [0, 1, 18, 6, 13, 2]} +{"sent_id": [4, 11, 1, 5, 2, 14]} +{"sent_id": [3, 12, 6, 7, 0, 1]} +{"sent_id": [4, 1, 2, 5, 3, 0]} +{"sent_id": [3, 1, 0, 12, 2, 15]} +{"sent_id": [1, 3, 2, 4, 13, 0]} +{"sent_id": [3, 1, 8, 0, 2, 5]} +{"sent_id": [0, 5, 1, 2, 4, 6]} +{"sent_id": [1, 0, 3, 2, 10, 4]} +{"sent_id": [0, 13, 2, 10, 5, 12]} +{"sent_id": [0, 1, 2, 4, 3, 11]} +{"sent_id": [3, 1, 0, 5, 4, 10]} +{"sent_id": [3, 1, 4, 2, 13, 0]} +{"sent_id": [1, 0, 2, 7, 4, 3]} +{"sent_id": [5, 13, 6, 0, 3, 12]} +{"sent_id": [1, 15, 4, 2, 6, 9]} +{"sent_id": [2, 0, 1, 7, 3, 9]} +{"sent_id": [4, 5, 6, 1, 7, 11]} +{"sent_id": [3, 1, 0, 2, 6, 7]} +{"sent_id": [1, 2, 4, 5, 0, 6]} +{"sent_id": [1, 2, 0, 5, 13, 12]} +{"sent_id": [1, 4, 7, 2, 5, 6]} +{"sent_id": [1, 8, 7, 12, 0, 9]} +{"sent_id": [2, 1, 13, 3, 6, 5]} +{"sent_id": [4, 13, 5, 6, 3, 9]} +{"sent_id": [1, 4, 5, 2, 6, 0]} +{"sent_id": [3, 9, 0, 18, 4, 17]} +{"sent_id": [1, 4, 2, 0, 3, 12]} +{"sent_id": [3, 6, 7, 15, 5, 10]} +{"sent_id": [1, 3, 4, 2, 5, 7]} +{"sent_id": [3, 1, 17, 20, 11, 0]} +{"sent_id": [1, 3, 0, 2, 11, 4]} +{"sent_id": [1, 3, 7, 2, 8, 5]} +{"sent_id": [4, 11, 2, 1, 8, 9]} +{"sent_id": [5, 8, 2, 10, 6, 4]} +{"sent_id": [4, 13, 0, 1, 12, 6]} +{"sent_id": [1, 3, 8, 4, 10, 2]} +{"sent_id": [2, 1, 7, 3, 4, 5]} +{"sent_id": [5, 2, 0, 1, 8, 9]} +{"sent_id": [4, 7, 2, 9, 5, 6]} +{"sent_id": [2, 0, 1, 3, 6, 4]} +{"sent_id": [4, 0, 17, 7, 2, 3]} +{"sent_id": [2, 0, 3, 4, 9, 6]} +{"sent_id": [1, 5, 2, 4, 6, 15]} +{"sent_id": [11, 3, 1, 2, 15, 18]} +{"sent_id": [1, 2, 10, 3, 7, 0]} +{"sent_id": [1, 0, 2, 8, 4, 3]} +{"sent_id": [11, 4, 2, 0, 17, 1]} +{"sent_id": [2, 1, 3, 12, 0, 15]} +{"sent_id": [3, 0, 9, 5, 2, 16]} +{"sent_id": [3, 7, 2, 13, 1, 8]} +{"sent_id": [5, 18, 11, 15, 1, 7]} +{"sent_id": [17, 2, 1, 15, 3, 5]} +{"sent_id": [1, 2, 3, 0, 8, 6]} +{"sent_id": [1, 0, 18, 17, 4, 2]} +{"sent_id": [1, 2, 4, 0, 7, 3]} +{"sent_id": [1, 2, 10, 5, 0, 3]} +{"sent_id": [3, 9, 8, 5, 2, 6]} +{"sent_id": [1, 5, 4, 13, 2, 6]} +{"sent_id": [2, 3, 9, 1, 6, 4]} +{"sent_id": [1, 3, 4, 12, 2, 7]} +{"sent_id": [0, 1, 3, 10, 5, 11]} +{"sent_id": [3, 1, 2, 16, 7, 10]} +{"sent_id": [1, 3, 0, 4, 2, 10]} +{"sent_id": [4, 5, 2, 0, 1, 3]} +{"sent_id": [3, 4, 0, 8, 12, 13]} +{"sent_id": [1, 3, 4, 5, 0, 8]} +{"sent_id": [2, 0, 3, 1, 7, 5]} +{"sent_id": [1, 2, 3, 4, 13, 0]} +{"sent_id": [2, 1, 4, 3, 0, 6]} +{"sent_id": [1, 4, 5, 7, 3, 6]} +{"sent_id": [2, 3, 4, 1, 5, 11]} +{"sent_id": [0, 1, 4, 9, 7, 3]} +{"sent_id": [5, 3, 1, 2, 11, 4]} +{"sent_id": [7, 1, 3, 13, 8, 15]} +{"sent_id": [1, 12, 0, 9, 11, 3]} +{"sent_id": [0, 1, 3, 4, 5, 2]} +{"sent_id": [0, 1, 17, 2, 18, 5]} +{"sent_id": [7, 0, 4, 3, 1, 2]} +{"sent_id": [3, 11, 4, 5, 10, 12]} +{"sent_id": [0, 2, 5, 1, 4, 3]} +{"sent_id": [6, 0, 15, 14, 10, 7]} +{"sent_id": [6, 3, 1, 16, 15, 19]} +{"sent_id": [0, 8, 9, 3, 18, 1]} +{"sent_id": [3, 0, 2, 1, 4, 13]} +{"sent_id": [3, 4, 5, 0, 2, 1]} +{"sent_id": [1, 5, 2, 7, 0, 6]} +{"sent_id": [1, 17, 2, 3, 14, 18]} +{"sent_id": [3, 0, 6, 5, 2, 10]} +{"sent_id": [3, 12, 1, 4, 2, 5]} +{"sent_id": [1, 2, 7, 14, 3, 4]} +{"sent_id": [3, 1, 0, 10, 4, 2]} +{"sent_id": [0, 2, 11, 1, 3, 6]} +{"sent_id": [0, 2, 3, 5, 4, 6]} +{"sent_id": [1, 3, 2, 6, 5, 4]} +{"sent_id": [5, 6, 17, 7, 16, 0]} +{"sent_id": [2, 4, 3, 1, 5, 11]} +{"sent_id": [0, 3, 2, 1, 4, 5]} +{"sent_id": [2, 1, 5, 8, 3, 9]} +{"sent_id": [0, 1, 10, 6, 4, 3]} +{"sent_id": [2, 1, 5, 4, 3, 0]} +{"sent_id": [1, 7, 2, 0, 4, 8]} +{"sent_id": [4, 2, 6, 5, 1, 17]} +{"sent_id": [1, 7, 8, 3, 15, 2]} +{"sent_id": [1, 4, 5, 0, 2, 9]} +{"sent_id": [3, 2, 4, 7, 5, 0]} +{"sent_id": [2, 3, 1, 11, 0, 5]} +{"sent_id": [3, 5, 2, 1, 0, 14]} +{"sent_id": [3, 4, 1, 2, 0, 6]} +{"sent_id": [4, 13, 8, 7, 9, 1]} +{"sent_id": [4, 3, 2, 15, 1, 5]} +{"sent_id": [1, 2, 3, 4, 5, 6]} +{"sent_id": [1, 2, 11, 6, 10, 3]} +{"sent_id": [4, 3, 5, 6, 9, 2]} +{"sent_id": [2, 1, 4, 3, 0, 10]} +{"sent_id": [1, 0, 2, 8, 11, 7]} +{"sent_id": [2, 5, 3, 13, 0, 18]} +{"sent_id": [1, 3, 0, 5, 2, 4]} +{"sent_id": [3, 1, 6, 5, 12, 9]} +{"sent_id": [0, 2, 1, 14, 10, 11]} +{"sent_id": [2, 0, 17, 3, 4, 6]} +{"sent_id": [0, 3, 16, 15, 2, 5]} +{"sent_id": [0, 4, 1, 5, 2, 3]} +{"sent_id": [3, 0, 5, 9, 4, 1]} +{"sent_id": [2, 1, 0, 3, 6, 5]} +{"sent_id": [0, 2, 4, 3, 1, 5]} +{"sent_id": [0, 16, 12, 2, 14, 15]} +{"sent_id": [0, 3, 1, 4, 10, 13]} +{"sent_id": [1, 2, 13, 3, 4, 0]} +{"sent_id": [1, 6, 5, 2, 17, 3]} +{"sent_id": [7, 2, 6, 15, 3, 8]} +{"sent_id": [2, 3, 4, 0, 1, 7]} +{"sent_id": [1, 3, 9, 2, 5, 0]} +{"sent_id": [3, 0, 15, 1, 22, 2]} +{"sent_id": [1, 3, 12, 2, 9, 5]} +{"sent_id": [0, 3, 4, 1, 5, 2]} +{"sent_id": [3, 1, 2, 0, 6, 13]} +{"sent_id": [4, 2, 5, 0, 13, 8]} +{"sent_id": [6, 3, 4, 9, 23, 1]} +{"sent_id": [1, 2, 5, 6, 0, 3]} +{"sent_id": [1, 3, 6, 0, 14, 7]} +{"sent_id": [1, 4, 6, 5, 2, 10]} +{"sent_id": [4, 3, 15, 0, 2, 1]} +{"sent_id": [1, 2, 5, 4, 0, 7]} +{"sent_id": [3, 1, 2, 6, 0, 5]} +{"sent_id": [1, 0, 2, 5, 3, 4]} +{"sent_id": [0, 5, 1, 4, 6, 14]} +{"sent_id": [1, 5, 4, 0, 7, 2]} +{"sent_id": [3, 1, 4, 12, 2, 0]} +{"sent_id": [1, 0, 2, 3, 13, 14]} +{"sent_id": [0, 2, 10, 4, 3, 1]} +{"sent_id": [4, 1, 7, 5, 2, 0]} +{"sent_id": [1, 5, 2, 0, 4, 6]} +{"sent_id": [3, 13, 2, 0, 14, 1]} +{"sent_id": [3, 7, 4, 10, 11, 0]} +{"sent_id": [4, 5, 3, 11, 1, 0]} +{"sent_id": [3, 11, 12, 0, 4, 2]} +{"sent_id": [4, 11, 15, 2, 10, 6]} +{"sent_id": [2, 8, 0, 14, 1, 3]} +{"sent_id": [1, 2, 10, 9, 0, 8]} +{"sent_id": [1, 2, 7, 3, 0, 4]} +{"sent_id": [1, 2, 0, 6, 3, 5]} +{"sent_id": [1, 2, 6, 4, 7, 0]} +{"sent_id": [1, 12, 0, 7, 3, 2]} +{"sent_id": [1, 2, 6, 0, 14, 5]} +{"sent_id": [3, 7, 2, 6, 5, 4]} +{"sent_id": [3, 1, 16, 0, 11, 2]} +{"sent_id": [2, 0, 1, 5, 3, 6]} +{"sent_id": [1, 4, 3, 11, 2, 7]} +{"sent_id": [1, 2, 5, 0, 8, 13]} +{"sent_id": [1, 6, 2, 0, 3, 10]} +{"sent_id": [3, 1, 2, 0, 12, 8]} +{"sent_id": [1, 6, 0, 7, 3, 12]} +{"sent_id": [0, 16, 5, 1, 7, 13]} +{"sent_id": [10, 1, 3, 4, 2, 0]} +{"sent_id": [1, 3, 4, 2, 0, 8]} +{"sent_id": [9, 13, 11, 3, 1, 2]} +{"sent_id": [1, 2, 3, 8, 0, 6]} +{"sent_id": [3, 0, 1, 10, 2, 5]} +{"sent_id": [1, 10, 3, 2, 5, 4]} +{"sent_id": [11, 2, 3, 0, 5, 4]} +{"sent_id": [1, 0, 2, 3, 8, 9]} +{"sent_id": [1, 11, 2, 0, 6, 3]} +{"sent_id": [0, 3, 1, 2, 6, 7]} +{"sent_id": [6, 5, 4, 2, 1, 3]} +{"sent_id": [2, 1, 5, 0, 4, 3]} +{"sent_id": [5, 2, 1, 0, 4, 3]} +{"sent_id": [2, 9, 6, 1, 0, 7]} +{"sent_id": [0, 2, 20, 8, 5, 14]} +{"sent_id": [2, 1, 4, 3, 7, 6]} +{"sent_id": [1, 0, 2, 3, 4, 16]} +{"sent_id": [3, 9, 1, 2, 4, 0]} +{"sent_id": [4, 11, 1, 2, 7, 0]} +{"sent_id": [3, 11, 4, 13, 9, 5]} +{"sent_id": [3, 12, 13, 0, 6, 4]} +{"sent_id": [1, 2, 5, 3, 16, 15]} +{"sent_id": [7, 0, 1, 8, 2, 5]} +{"sent_id": [3, 1, 5, 6, 4, 2]} +{"sent_id": [3, 4, 6, 2, 12, 5]} +{"sent_id": [1, 2, 3, 6, 11, 8]} +{"sent_id": [3, 2, 0, 12, 10, 1]} +{"sent_id": [5, 11, 2, 10, 0, 1]} +{"sent_id": [0, 4, 2, 9, 1, 8]} +{"sent_id": [5, 1, 6, 12, 7, 8]} +{"sent_id": [4, 2, 5, 3, 0, 1]} +{"sent_id": [0, 2, 6, 1, 9, 3]} +{"sent_id": [7, 3, 0, 4, 2, 1]} +{"sent_id": [1, 12, 2, 10, 6, 13]} +{"sent_id": [2, 4, 14, 6, 3, 5]} +{"sent_id": [1, 4, 2, 8, 3, 5]} +{"sent_id": [1, 2, 3, 10, 4, 6]} +{"sent_id": [3, 4, 0, 12, 1, 5]} +{"sent_id": [0, 1, 4, 3, 5, 6]} +{"sent_id": [1, 0, 13, 4, 3, 7]} +{"sent_id": [3, 2, 0, 10, 4, 7]} +{"sent_id": [4, 1, 2, 6, 3, 0]} +{"sent_id": [2, 3, 4, 1, 0, 11]} +{"sent_id": [1, 0, 2, 13, 11, 8]} +{"sent_id": [1, 5, 2, 6, 4, 13]} +{"sent_id": [1, 5, 4, 10, 0, 8]} +{"sent_id": [2, 7, 3, 6, 16, 1]} +{"sent_id": [3, 0, 15, 2, 1, 12]} +{"sent_id": [0, 1, 8, 7, 2, 14]} +{"sent_id": [2, 1, 3, 9, 4, 8]} +{"sent_id": [2, 1, 15, 3, 10, 4]} +{"sent_id": [8, 9, 1, 3, 6, 5]} +{"sent_id": [0, 2, 1, 16, 12, 11]} +{"sent_id": [0, 1, 2, 16, 10, 15]} +{"sent_id": [1, 3, 2, 14, 4, 8]} +{"sent_id": [1, 2, 0, 12, 4, 8]} +{"sent_id": [1, 11, 2, 13, 14, 3]} +{"sent_id": [0, 3, 2, 1, 8, 16]} +{"sent_id": [2, 0, 1, 4, 3, 6]} +{"sent_id": [4, 5, 0, 13, 10, 8]} +{"sent_id": [1, 3, 6, 2, 12, 13]} +{"sent_id": [3, 0, 1, 2, 9, 4]} +{"sent_id": [3, 1, 12, 0, 2, 4]} +{"sent_id": [1, 0, 2, 4, 7, 9]} +{"sent_id": [5, 1, 3, 4, 13, 12]} +{"sent_id": [2, 8, 1, 4, 7, 13]} +{"sent_id": [6, 5, 0, 1, 3, 2]} +{"sent_id": [7, 8, 3, 1, 12, 17]} +{"sent_id": [1, 14, 0, 15, 10, 13]} +{"sent_id": [2, 3, 11, 0, 4, 1]} +{"sent_id": [1, 2, 3, 10, 0, 4]} +{"sent_id": [3, 2, 9, 4, 6, 0]} +{"sent_id": [1, 2, 0, 3, 9, 4]} +{"sent_id": [0, 1, 3, 7, 4, 8]} +{"sent_id": [3, 5, 1, 2, 6, 4]} +{"sent_id": [0, 1, 8, 9, 11, 7]} +{"sent_id": [9, 8, 19, 15, 2, 1]} +{"sent_id": [1, 3, 2, 0, 5, 13]} +{"sent_id": [1, 4, 3, 2, 0, 6]} +{"sent_id": [2, 1, 5, 6, 4, 14]} +{"sent_id": [0, 4, 12, 1, 2, 13]} +{"sent_id": [3, 4, 6, 5, 9, 10]} +{"sent_id": [1, 4, 12, 0, 3, 8]} +{"sent_id": [1, 4, 8, 10, 2, 9]} +{"sent_id": [1, 3, 2, 5, 15, 4]} +{"sent_id": [0, 15, 4, 1, 3, 2]} +{"sent_id": [4, 2, 8, 5, 3, 10]} +{"sent_id": [2, 13, 8, 1, 7, 6]} +{"sent_id": [8, 9, 12, 11, 13, 0]} +{"sent_id": [1, 2, 8, 3, 6, 12]} +{"sent_id": [1, 2, 3, 7, 6, 5]} +{"sent_id": [6, 5, 2, 4, 3, 17]} +{"sent_id": [3, 6, 2, 1, 8, 5]} +{"sent_id": [2, 0, 1, 3, 5, 6]} +{"sent_id": [7, 0, 2, 10, 1, 4]} +{"sent_id": [12, 2, 1, 4, 3, 8]} +{"sent_id": [2, 1, 5, 14, 6, 8]} +{"sent_id": [2, 9, 5, 4, 6, 14]} +{"sent_id": [1, 10, 4, 2, 5, 0]} +{"sent_id": [1, 0, 2, 3, 6, 7]} +{"sent_id": [3, 4, 2, 1, 6, 7]} +{"sent_id": [4, 0, 10, 1, 9, 6]} +{"sent_id": [0, 3, 6, 5, 4, 2]} +{"sent_id": [1, 2, 7, 9, 10, 0]} +{"sent_id": [0, 8, 2, 1, 4, 5]} +{"sent_id": [8, 3, 9, 2, 1, 10]} +{"sent_id": [1, 0, 2, 3, 6, 9]} +{"sent_id": [4, 2, 3, 1, 11, 6]} +{"sent_id": [1, 2, 0, 3, 13, 7]} +{"sent_id": [1, 2, 4, 0, 10, 3]} +{"sent_id": [1, 8, 0, 2, 6, 7]} +{"sent_id": [0, 6, 5, 2, 1, 7]} +{"sent_id": [0, 2, 15, 3, 14, 10]} +{"sent_id": [0, 4, 2, 9, 8, 3]} +{"sent_id": [1, 2, 6, 0, 3, 20]} +{"sent_id": [4, 1, 0, 2, 3, 13]} +{"sent_id": [1, 4, 0, 3, 2, 8]} +{"sent_id": [1, 6, 5, 9, 8, 2]} +{"sent_id": [3, 6, 5, 10, 0, 2]} +{"sent_id": [1, 3, 8, 2, 4, 11]} +{"sent_id": [1, 10, 0, 2, 14, 12]} +{"sent_id": [11, 2, 6, 0, 12, 17]} +{"sent_id": [3, 11, 0, 1, 16, 4]} +{"sent_id": [0, 4, 6, 5, 1, 9]} +{"sent_id": [1, 3, 5, 4, 2, 0]} +{"sent_id": [4, 3, 5, 2, 10, 1]} +{"sent_id": [1, 4, 3, 2, 13, 9]} +{"sent_id": [7, 8, 13, 0, 9, 11]} +{"sent_id": [1, 5, 4, 2, 6, 0]} +{"sent_id": [3, 2, 8, 0, 9, 1]} +{"sent_id": [6, 5, 4, 8, 15, 11]} +{"sent_id": [1, 3, 0, 8, 2, 10]} +{"sent_id": [2, 0, 9, 1, 6, 17]} +{"sent_id": [2, 4, 3, 0, 5, 6]} +{"sent_id": [3, 1, 2, 6, 8, 10]} +{"sent_id": [1, 4, 3, 2, 7, 8]} +{"sent_id": [2, 3, 0, 1, 8, 5]} +{"sent_id": [0, 1, 3, 8, 9, 18]} +{"sent_id": [4, 2, 6, 10, 0, 5]} +{"sent_id": [16, 9, 0, 12, 1, 17]} +{"sent_id": [3, 11, 13, 2, 5, 8]} +{"sent_id": [1, 3, 4, 0, 2, 15]} +{"sent_id": [1, 2, 3, 4, 5, 7]} +{"sent_id": [1, 0, 9, 3, 2, 10]} +{"sent_id": [1, 4, 6, 0, 8, 12]} +{"sent_id": [2, 11, 3, 7, 4, 8]} +{"sent_id": [1, 6, 2, 3, 0, 4]} +{"sent_id": [3, 4, 5, 9, 7, 6]} +{"sent_id": [3, 2, 13, 14, 4, 0]} +{"sent_id": [1, 8, 3, 2, 0, 7]} +{"sent_id": [1, 3, 2, 6, 8, 7]} +{"sent_id": [2, 3, 1, 4, 5, 11]} +{"sent_id": [5, 15, 14, 4, 1, 12]} +{"sent_id": [1, 10, 0, 2, 14, 6]} +{"sent_id": [1, 3, 2, 6, 7, 0]} +{"sent_id": [1, 2, 4, 10, 0, 5]} +{"sent_id": [4, 1, 2, 0, 5, 7]} +{"sent_id": [9, 10, 5, 8, 17, 18]} +{"sent_id": [0, 10, 16, 2, 5, 11]} +{"sent_id": [5, 4, 6, 12, 2, 9]} +{"sent_id": [0, 2, 3, 1, 4, 5]} +{"sent_id": [3, 4, 8, 0, 1, 2]} +{"sent_id": [2, 1, 4, 3, 8, 14]} +{"sent_id": [12, 1, 8, 2, 7, 0]} +{"sent_id": [1, 3, 2, 9, 10, 13]} +{"sent_id": [3, 8, 1, 10, 9, 5]} +{"sent_id": [3, 1, 0, 14, 4, 20]} +{"sent_id": [3, 8, 1, 4, 12, 2]} +{"sent_id": [1, 3, 5, 0, 2, 8]} +{"sent_id": [1, 3, 2, 4, 7, 8]} +{"sent_id": [5, 19, 4, 2, 6, 3]} +{"sent_id": [3, 11, 10, 1, 5, 8]} +{"sent_id": [9, 3, 0, 4, 8, 1]} +{"sent_id": [1, 6, 4, 16, 2, 9]} +{"sent_id": [1, 2, 4, 7, 5, 0]} +{"sent_id": [1, 2, 5, 4, 3, 0]} +{"sent_id": [3, 9, 10, 0, 2, 1]} +{"sent_id": [3, 14, 2, 1, 6, 5]} +{"sent_id": [1, 0, 6, 2, 5, 12]} +{"sent_id": [3, 1, 8, 0, 10, 2]} +{"sent_id": [1, 2, 6, 3, 5, 10]} +{"sent_id": [1, 2, 6, 4, 7, 0]} +{"sent_id": [5, 4, 1, 2, 3, 8]} +{"sent_id": [2, 3, 1, 4, 9, 8]} +{"sent_id": [2, 10, 7, 1, 3, 0]} +{"sent_id": [11, 4, 6, 1, 3, 7]} +{"sent_id": [4, 13, 3, 5, 10, 8]} +{"sent_id": [0, 5, 9, 1, 2, 3]} +{"sent_id": [3, 1, 7, 0, 2, 11]} +{"sent_id": [1, 2, 15, 5, 0, 4]} +{"sent_id": [1, 2, 5, 3, 0, 4]} +{"sent_id": [1, 2, 8, 7, 12, 0]} +{"sent_id": [2, 3, 0, 1, 4, 5]} +{"sent_id": [0, 2, 1, 20, 14, 7]} +{"sent_id": [4, 2, 0, 1, 6, 5]} +{"sent_id": [2, 3, 0, 5, 6, 1]} +{"sent_id": [1, 3, 2, 4, 5, 11]} +{"sent_id": [1, 4, 3, 5, 0, 8]} +{"sent_id": [2, 1, 5, 6, 0, 8]} +{"sent_id": [5, 2, 8, 1, 9, 7]} +{"sent_id": [4, 0, 1, 2, 3, 14]} +{"sent_id": [0, 5, 2, 7, 3, 8]} +{"sent_id": [0, 1, 5, 3, 6, 2]} +{"sent_id": [3, 12, 14, 7, 4, 11]} +{"sent_id": [1, 9, 2, 10, 3, 5]} +{"sent_id": [1, 7, 4, 13, 8, 14]} +{"sent_id": [1, 2, 3, 6, 7, 0]} +{"sent_id": [3, 5, 1, 2, 4, 9]} +{"sent_id": [1, 5, 11, 0, 7, 2]} +{"sent_id": [1, 2, 5, 6, 0, 3]} +{"sent_id": [3, 4, 0, 1, 8, 9]} +{"sent_id": [4, 2, 5, 8, 6, 3]} +{"sent_id": [1, 2, 5, 11, 6, 0]} +{"sent_id": [1, 10, 2, 4, 7, 3]} +{"sent_id": [8, 5, 11, 2, 3, 4]} +{"sent_id": [3, 4, 2, 1, 5, 10]} +{"sent_id": [4, 6, 2, 1, 3, 0]} +{"sent_id": [9, 11, 10, 15, 12, 6]} +{"sent_id": [1, 7, 6, 2, 5, 0]} +{"sent_id": [1, 7, 3, 4, 9, 2]} +{"sent_id": [1, 3, 2, 4, 6, 8]} +{"sent_id": [2, 3, 8, 5, 1, 4]} +{"sent_id": [0, 2, 6, 5, 7, 4]} +{"sent_id": [4, 1, 5, 0, 18, 20]} +{"sent_id": [2, 0, 3, 1, 5, 6]} +{"sent_id": [3, 2, 4, 0, 12, 1]} +{"sent_id": [4, 3, 1, 0, 2, 14]} +{"sent_id": [0, 3, 2, 6, 1, 7]} +{"sent_id": [0, 11, 7, 5, 18, 8]} +{"sent_id": [0, 1, 2, 3, 15, 12]} +{"sent_id": [2, 1, 5, 3, 0, 6]} +{"sent_id": [1, 14, 8, 0, 2, 6]} +{"sent_id": [7, 15, 18, 8, 1, 2]} +{"sent_id": [17, 3, 10, 1, 0, 16]} +{"sent_id": [1, 0, 2, 9, 13, 3]} +{"sent_id": [3, 10, 4, 1, 12, 5]} +{"sent_id": [1, 3, 0, 4, 5, 10]} +{"sent_id": [1, 8, 10, 2, 9, 7]} +{"sent_id": [3, 4, 5, 2, 0, 1]} +{"sent_id": [17, 8, 5, 4, 1, 3]} +{"sent_id": [3, 1, 14, 0, 4, 2]} +{"sent_id": [1, 2, 5, 7, 6, 0]} +{"sent_id": [1, 12, 2, 0, 13, 4]} +{"sent_id": [5, 6, 2, 7, 14, 4]} +{"sent_id": [1, 6, 0, 9, 10, 5]} +{"sent_id": [3, 2, 1, 0, 14, 6]} +{"sent_id": [3, 8, 12, 2, 1, 6]} +{"sent_id": [1, 4, 5, 3, 2, 7]} +{"sent_id": [17, 3, 11, 18, 12, 1]} +{"sent_id": [1, 0, 2, 3, 4, 11]} +{"sent_id": [0, 10, 15, 17, 18, 1]} +{"sent_id": [4, 2, 1, 0, 22, 3]} +{"sent_id": [4, 6, 1, 23, 15, 0]} +{"sent_id": [0, 9, 1, 3, 2, 5]} +{"sent_id": [2, 0, 11, 1, 14, 3]} +{"sent_id": [3, 13, 0, 4, 1, 7]} +{"sent_id": [4, 8, 14, 5, 12, 6]} +{"sent_id": [1, 3, 0, 5, 7, 4]} +{"sent_id": [2, 6, 7, 5, 10, 1]} +{"sent_id": [4, 3, 5, 9, 14, 10]} +{"sent_id": [5, 22, 12, 7, 14, 0]} +{"sent_id": [1, 2, 7, 4, 3, 15]} +{"sent_id": [3, 2, 8, 0, 1, 5]} +{"sent_id": [0, 5, 6, 4, 8, 7]} +{"sent_id": [4, 1, 2, 0, 19, 3]} +{"sent_id": [4, 5, 8, 6, 9, 16]} +{"sent_id": [2, 1, 0, 3, 4, 5]} +{"sent_id": [1, 2, 4, 8, 5, 6]} +{"sent_id": [3, 2, 1, 0, 10, 4]} +{"sent_id": [1, 2, 3, 7, 5, 0]} +{"sent_id": [14, 1, 29, 18, 9, 0]} +{"sent_id": [1, 2, 16, 3, 5, 10]} +{"sent_id": [4, 5, 6, 8, 14, 7]} +{"sent_id": [0, 4, 6, 8, 1, 14]} +{"sent_id": [10, 1, 3, 0, 11, 4]} +{"sent_id": [2, 1, 3, 0, 6, 4]} +{"sent_id": [1, 2, 5, 0, 4, 3]} +{"sent_id": [3, 1, 4, 0, 10, 5]} +{"sent_id": [3, 13, 4, 1, 12, 5]} +{"sent_id": [1, 5, 0, 7, 20, 12]} +{"sent_id": [7, 13, 3, 1, 8, 4]} +{"sent_id": [6, 2, 3, 4, 1, 18]} +{"sent_id": [3, 2, 1, 5, 15, 0]} +{"sent_id": [0, 1, 5, 10, 11, 4]} +{"sent_id": [5, 4, 2, 10, 3, 1]} +{"sent_id": [1, 14, 16, 8, 2, 9]} +{"sent_id": [2, 0, 3, 8, 1, 12]} +{"sent_id": [9, 4, 1, 8, 0, 2]} +{"sent_id": [10, 0, 11, 2, 1, 3]} +{"sent_id": [3, 1, 11, 4, 9, 5]} +{"sent_id": [3, 2, 1, 0, 5, 9]} +{"sent_id": [5, 11, 6, 2, 3, 1]} +{"sent_id": [0, 9, 2, 10, 1, 5]} +{"sent_id": [3, 2, 15, 4, 1, 11]} +{"sent_id": [6, 3, 0, 1, 5, 7]} +{"sent_id": [3, 1, 9, 7, 0, 2]} +{"sent_id": [2, 3, 4, 0, 5, 9]} +{"sent_id": [1, 5, 9, 7, 0, 2]} +{"sent_id": [1, 2, 0, 5, 3, 7]} +{"sent_id": [1, 2, 5, 8, 4, 0]} +{"sent_id": [0, 5, 4, 16, 1, 7]} +{"sent_id": [1, 7, 3, 2, 8, 6]} +{"sent_id": [4, 3, 9, 15, 8, 0]} +{"sent_id": [2, 5, 4, 7, 8, 1]} +{"sent_id": [1, 3, 2, 11, 9, 4]} +{"sent_id": [2, 1, 0, 3, 7, 4]} +{"sent_id": [0, 6, 1, 2, 3, 8]} +{"sent_id": [3, 2, 4, 0, 1, 8]} +{"sent_id": [10, 0, 4, 2, 8, 1]} +{"sent_id": [3, 0, 4, 5, 1, 2]} +{"sent_id": [12, 2, 3, 0, 4, 6]} +{"sent_id": [3, 12, 2, 1, 4, 11]} +{"sent_id": [0, 13, 2, 8, 3, 12]} +{"sent_id": [0, 15, 5, 2, 1, 11]} +{"sent_id": [11, 4, 12, 1, 2, 0]} +{"sent_id": [1, 3, 13, 10, 11, 0]} +{"sent_id": [5, 1, 4, 0, 2, 3]} +{"sent_id": [1, 18, 3, 2, 13, 12]} +{"sent_id": [0, 1, 7, 13, 4, 3]} +{"sent_id": [1, 4, 11, 8, 5, 0]} +{"sent_id": [1, 5, 0, 6, 9, 10]} +{"sent_id": [3, 2, 4, 10, 6, 7]} +{"sent_id": [7, 1, 8, 3, 11, 4]} +{"sent_id": [1, 4, 2, 3, 5, 13]} +{"sent_id": [3, 1, 6, 2, 10, 11]} +{"sent_id": [8, 2, 3, 5, 1, 0]} +{"sent_id": [12, 3, 1, 0, 2, 6]} +{"sent_id": [2, 4, 10, 1, 6, 15]} +{"sent_id": [1, 6, 2, 7, 5, 3]} +{"sent_id": [1, 2, 10, 9, 15, 3]} +{"sent_id": [3, 10, 1, 9, 2, 0]} +{"sent_id": [1, 11, 5, 2, 0, 3]} +{"sent_id": [1, 3, 7, 4, 5, 2]} +{"sent_id": [1, 2, 4, 11, 0, 7]} +{"sent_id": [2, 0, 1, 5, 3, 4]} +{"sent_id": [3, 11, 12, 5, 7, 4]} +{"sent_id": [14, 0, 15, 4, 1, 2]} +{"sent_id": [3, 1, 4, 5, 7, 8]} +{"sent_id": [2, 4, 3, 1, 7, 0]} +{"sent_id": [4, 2, 5, 3, 1, 8]} +{"sent_id": [2, 12, 13, 7, 1, 14]} +{"sent_id": [1, 3, 2, 0, 4, 14]} +{"sent_id": [0, 6, 2, 1, 3, 4]} +{"sent_id": [1, 3, 2, 6, 5, 0]} +{"sent_id": [4, 3, 5, 1, 6, 9]} +{"sent_id": [3, 0, 2, 5, 12, 4]} +{"sent_id": [4, 15, 5, 2, 1, 7]} +{"sent_id": [3, 4, 2, 0, 5, 1]} +{"sent_id": [1, 3, 14, 2, 5, 6]} +{"sent_id": [1, 2, 0, 11, 9, 3]} +{"sent_id": [5, 4, 3, 2, 6, 9]} +{"sent_id": [1, 0, 2, 6, 7, 3]} +{"sent_id": [10, 11, 3, 0, 2, 1]} +{"sent_id": [1, 4, 3, 2, 11, 0]} +{"sent_id": [1, 2, 4, 9, 0, 3]} +{"sent_id": [9, 0, 1, 7, 10, 2]} +{"sent_id": [2, 1, 0, 6, 7, 5]} +{"sent_id": [3, 1, 2, 15, 10, 4]} +{"sent_id": [0, 2, 1, 4, 6, 3]} +{"sent_id": [2, 3, 1, 9, 10, 16]} +{"sent_id": [1, 8, 2, 18, 3, 5]} +{"sent_id": [0, 2, 4, 1, 12, 9]} +{"sent_id": [1, 2, 5, 4, 6, 7]} +{"sent_id": [1, 2, 3, 0, 17, 5]} +{"sent_id": [1, 8, 3, 2, 9, 5]} +{"sent_id": [0, 16, 4, 2, 1, 6]} +{"sent_id": [5, 6, 3, 4, 2, 7]} +{"sent_id": [4, 10, 0, 1, 3, 5]} +{"sent_id": [3, 2, 6, 4, 5, 0]} +{"sent_id": [2, 3, 4, 5, 7, 8]} +{"sent_id": [7, 6, 5, 19, 2, 12]} +{"sent_id": [2, 5, 1, 12, 14, 11]} +{"sent_id": [3, 5, 0, 1, 2, 6]} +{"sent_id": [1, 3, 2, 7, 12, 5]} +{"sent_id": [0, 4, 2, 18, 21, 1]} +{"sent_id": [5, 9, 0, 6, 1, 10]} +{"sent_id": [0, 2, 3, 5, 4, 8]} +{"sent_id": [11, 0, 3, 5, 1, 9]} +{"sent_id": [2, 3, 4, 7, 5, 0]} +{"sent_id": [1, 3, 2, 5, 6, 4]} +{"sent_id": [1, 2, 9, 3, 11, 0]} +{"sent_id": [1, 2, 6, 9, 3, 7]} +{"sent_id": [2, 6, 0, 3, 4, 5]} +{"sent_id": [1, 2, 7, 0, 6, 3]} +{"sent_id": [3, 1, 5, 6, 11, 4]} +{"sent_id": [2, 1, 4, 3, 9, 0]} +{"sent_id": [1, 5, 2, 0, 4, 11]} +{"sent_id": [2, 8, 5, 4, 9, 13]} +{"sent_id": [2, 3, 4, 0, 1, 8]} +{"sent_id": [2, 4, 1, 6, 7, 5]} +{"sent_id": [7, 8, 14, 2, 3, 1]} +{"sent_id": [2, 0, 1, 3, 19, 4]} +{"sent_id": [3, 1, 0, 6, 5, 4]} +{"sent_id": [3, 4, 0, 2, 1, 10]} +{"sent_id": [1, 11, 4, 2, 6, 0]} +{"sent_id": [2, 7, 1, 8, 6, 9]} +{"sent_id": [1, 3, 14, 0, 2, 5]} +{"sent_id": [0, 2, 3, 6, 4, 8]} +{"sent_id": [4, 6, 3, 1, 0, 2]} +{"sent_id": [0, 1, 4, 3, 2]} +{"sent_id": [1, 2, 9, 3, 0, 7]} +{"sent_id": [3, 0, 14, 1, 2, 15]} +{"sent_id": [1, 5, 4, 2, 0, 3]} +{"sent_id": [2, 1, 3, 6, 5, 13]} +{"sent_id": [3, 2, 1, 5, 4, 8]} +{"sent_id": [1, 2, 9, 4, 12, 0]} +{"sent_id": [3, 1, 2, 8, 4, 0]} +{"sent_id": [3, 1, 11, 2, 5, 12]} +{"sent_id": [0, 1, 12, 5, 4, 13]} +{"sent_id": [1, 10, 11, 3, 2, 6]} +{"sent_id": [0, 3, 5, 2, 4, 12]} +{"sent_id": [2, 1, 15, 0, 8, 9]} +{"sent_id": [5, 6, 1, 4, 2, 18]} +{"sent_id": [0, 4, 12, 1, 3, 2]} +{"sent_id": [3, 2, 5, 4, 7, 6]} +{"sent_id": [4, 3, 2, 0, 1, 10]} +{"sent_id": [2, 4, 3, 8, 9, 11]} +{"sent_id": [4, 3, 7, 11, 16, 5]} +{"sent_id": [0, 9, 2, 1, 4, 7]} +{"sent_id": [1, 4, 2, 10, 11, 3]} +{"sent_id": [1, 0, 2, 5, 6, 7]} +{"sent_id": [1, 3, 4, 2, 11, 5]} +{"sent_id": [2, 4, 3, 5, 13, 1]} +{"sent_id": [4, 11, 1, 9, 0, 2]} +{"sent_id": [4, 0, 3, 11, 2, 5]} +{"sent_id": [3, 8, 1, 4, 5, 11]} +{"sent_id": [3, 5, 1, 0, 2, 11]} +{"sent_id": [2, 3, 9, 6, 1, 0]} +{"sent_id": [1, 2, 0, 13, 3, 6]} +{"sent_id": [3, 4, 5, 10, 11, 6]} +{"sent_id": [3, 2, 4, 1, 6, 5]} +{"sent_id": [1, 2, 10, 3, 4, 7]} +{"sent_id": [1, 2, 4, 12, 11, 7]} +{"sent_id": [2, 1, 16, 12, 3, 14]} +{"sent_id": [2, 5, 3, 4, 1, 0]} +{"sent_id": [3, 7, 0, 2, 1, 4]} +{"sent_id": [1, 2, 8, 9, 4, 10]} +{"sent_id": [1, 4, 5, 2, 3, 6]} +{"sent_id": [4, 5, 0, 8, 2, 6]} +{"sent_id": [1, 11, 0, 4, 3, 12]} +{"sent_id": [1, 4, 2, 3, 7, 0]} +{"sent_id": [3, 12, 1, 11, 4, 5]} +{"sent_id": [0, 3, 2, 9, 4, 7]} +{"sent_id": [0, 14, 17, 10, 5, 2]} +{"sent_id": [3, 4, 5, 1, 0, 6]} +{"sent_id": [19, 2, 4, 5, 0, 10]} +{"sent_id": [0, 2, 11, 3, 4, 5]} +{"sent_id": [1, 7, 2, 9, 17, 6]} +{"sent_id": [1, 3, 2, 8, 5, 0]} +{"sent_id": [2, 4, 3, 0, 7, 1]} +{"sent_id": [3, 4, 1, 2, 13, 0]} +{"sent_id": [1, 2, 3, 5, 4, 7]} +{"sent_id": [0, 5, 1, 15, 6, 3]} +{"sent_id": [1, 2, 8, 9, 12, 4]} +{"sent_id": [2, 1, 0, 5, 9, 11]} +{"sent_id": [1, 15, 2, 6, 3, 9]} +{"sent_id": [3, 0, 2, 1, 7, 6]} +{"sent_id": [1, 3, 5, 8, 2, 7]} +{"sent_id": [1, 0, 3, 2, 4, 8]} +{"sent_id": [5, 4, 2, 6, 7, 1]} +{"sent_id": [3, 1, 2, 5, 0, 4]} +{"sent_id": [0, 1, 2, 3, 20, 14]} +{"sent_id": [3, 0, 2, 5, 1, 12]} +{"sent_id": [4, 2, 0, 1, 12, 6]} +{"sent_id": [4, 3, 1, 2, 12, 11]} +{"sent_id": [2, 1, 4, 5, 7, 3]} +{"sent_id": [5, 1, 6, 4, 2, 0]} +{"sent_id": [9, 8, 17, 4, 16, 15]} +{"sent_id": [3, 4, 5, 2, 6, 0]} +{"sent_id": [1, 2, 4, 7, 10, 5]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [4, 2, 1, 10, 3, 7]} +{"sent_id": [0, 2, 5, 12, 6, 1]} +{"sent_id": [3, 2, 1, 11, 9, 10]} +{"sent_id": [3, 2, 15, 1, 16, 4]} +{"sent_id": [1, 2, 0, 4, 8, 9]} +{"sent_id": [1, 2, 3, 7, 0, 5]} +{"sent_id": [3, 0, 1, 2, 6, 7]} +{"sent_id": [1, 2, 13, 4, 6, 0]} +{"sent_id": [3, 4, 0, 8, 18, 15]} +{"sent_id": [0, 2, 5, 1, 4, 3]} +{"sent_id": [3, 4, 1, 2, 14, 15]} +{"sent_id": [2, 4, 6, 1, 3, 0]} +{"sent_id": [3, 4, 12, 0, 5, 10]} +{"sent_id": [4, 1, 2, 6, 0, 5]} +{"sent_id": [2, 13, 1, 3, 4, 5]} +{"sent_id": [3, 1, 10, 2, 4, 8]} +{"sent_id": [3, 0, 1, 2, 6, 4]} +{"sent_id": [3, 0, 13, 2, 10, 4]} +{"sent_id": [1, 3, 10, 8, 7, 2]} +{"sent_id": [4, 0, 1, 22, 2, 3]} +{"sent_id": [0, 3, 1, 6, 2, 8]} +{"sent_id": [1, 8, 2, 11, 9, 0]} +{"sent_id": [1, 4, 0, 5, 7, 6]} +{"sent_id": [1, 3, 4, 2, 6, 8]} +{"sent_id": [3, 0, 1, 13, 2, 4]} +{"sent_id": [3, 1, 4, 2, 6, 15]} +{"sent_id": [1, 2, 3, 0, 6, 5]} +{"sent_id": [4, 0, 5, 14, 3, 1]} +{"sent_id": [3, 1, 2, 0, 7, 10]} +{"sent_id": [3, 4, 11, 1, 0, 2]} +{"sent_id": [1, 2, 3, 13, 6, 0]} +{"sent_id": [3, 2, 1, 7, 4, 0]} +{"sent_id": [0, 1, 2, 5, 13, 3]} +{"sent_id": [3, 14, 1, 0, 6, 4]} +{"sent_id": [1, 2, 5, 6, 3, 0]} +{"sent_id": [3, 1, 8, 7, 2, 0]} +{"sent_id": [0, 6, 3, 4, 1, 2]} +{"sent_id": [0, 4, 2, 18, 3, 5]} +{"sent_id": [3, 5, 6, 4, 7, 0]} +{"sent_id": [2, 1, 3, 16, 11, 0]} +{"sent_id": [1, 2, 3, 4, 12, 13]} +{"sent_id": [1, 8, 3, 9, 2, 0]} +{"sent_id": [0, 1, 2, 5, 8, 9]} +{"sent_id": [0, 2, 4, 3, 1, 7]} +{"sent_id": [1, 2, 5, 4, 8, 7]} +{"sent_id": [1, 0, 3, 9, 5, 2]} +{"sent_id": [1, 2, 8, 5, 6, 7]} +{"sent_id": [1, 8, 9, 0, 5, 2]} +{"sent_id": [1, 2, 3, 7, 8, 5]} +{"sent_id": [2, 11, 5, 6, 1, 16]} +{"sent_id": [3, 4, 10, 7, 11, 8]} +{"sent_id": [0, 1, 5, 6, 2, 9]} +{"sent_id": [1, 0, 9, 2, 12, 4]} +{"sent_id": [6, 9, 8, 7, 2, 3]} +{"sent_id": [0, 5, 1, 11, 12, 3]} +{"sent_id": [5, 1, 7, 2, 0, 3]} +{"sent_id": [4, 8, 0, 5, 1, 2]} +{"sent_id": [12, 3, 0, 2, 1, 20]} +{"sent_id": [2, 6, 1, 15, 22, 4]} +{"sent_id": [3, 4, 1, 5, 6, 2]} +{"sent_id": [5, 18, 13, 4, 6, 16]} +{"sent_id": [2, 3, 0, 14, 5, 1]} +{"sent_id": [3, 4, 2, 10, 9, 7]} +{"sent_id": [6, 8, 1, 10, 7, 11]} +{"sent_id": [1, 5, 2, 4, 6, 11]} +{"sent_id": [3, 1, 2, 4, 6, 8]} +{"sent_id": [3, 1, 10, 11, 2, 12]} +{"sent_id": [0, 3, 6, 1, 2, 4]} +{"sent_id": [1, 5, 6, 9, 2, 10]} +{"sent_id": [1, 0, 3, 4, 7, 2]} +{"sent_id": [1, 2, 17, 5, 10, 12]} +{"sent_id": [1, 3, 4, 2, 17, 14]} +{"sent_id": [2, 3, 6, 5, 4, 14]} +{"sent_id": [1, 2, 6, 0, 7, 3]} +{"sent_id": [2, 14, 1, 0, 5, 4]} +{"sent_id": [1, 2, 4, 11, 3, 0]} +{"sent_id": [1, 2, 7, 8, 0, 14]} +{"sent_id": [0, 2, 14, 3, 4, 6]} +{"sent_id": [13, 6, 1, 7, 5, 8]} +{"sent_id": [0, 2, 1, 4, 3, 8]} +{"sent_id": [3, 2, 4, 1, 0, 11]} +{"sent_id": [0, 1, 6, 5, 20, 11]} +{"sent_id": [1, 5, 4, 2, 3, 8]} +{"sent_id": [2, 10, 0, 4, 3, 5]} +{"sent_id": [5, 0, 4, 9, 2, 1]} +{"sent_id": [1, 2, 0, 9, 5, 7]} +{"sent_id": [12, 2, 4, 3, 1, 6]} +{"sent_id": [4, 5, 6, 3, 9, 2]} +{"sent_id": [2, 1, 6, 5, 12, 3]} +{"sent_id": [1, 3, 4, 9, 2, 12]} +{"sent_id": [3, 1, 5, 2, 4, 6]} +{"sent_id": [1, 3, 2, 4, 0, 7]} +{"sent_id": [4, 2, 1, 3, 8, 0]} +{"sent_id": [1, 2, 4, 5, 3, 0]} +{"sent_id": [2, 3, 0, 4, 1, 9]} +{"sent_id": [1, 3, 5, 2, 10, 11]} +{"sent_id": [3, 2, 4, 0, 8, 9]} +{"sent_id": [2, 4, 3, 6, 7, 5]} +{"sent_id": [0, 1, 4, 3, 7, 2]} +{"sent_id": [1, 2, 0, 7, 8, 4]} +{"sent_id": [2, 3, 1, 6, 7, 8]} +{"sent_id": [0, 2, 10, 4, 9, 12]} +{"sent_id": [1, 2, 0, 5, 3, 4]} +{"sent_id": [1, 2, 13, 9, 14, 4]} +{"sent_id": [3, 1, 2, 9, 8, 19]} +{"sent_id": [1, 3, 4, 8, 2, 10]} +{"sent_id": [18, 1, 9, 7, 2, 11]} +{"sent_id": [1, 0, 3, 5, 2, 4]} +{"sent_id": [2, 4, 16, 15, 0, 3]} +{"sent_id": [1, 4, 3, 11, 2, 8]} +{"sent_id": [1, 6, 0, 4, 11, 2]} +{"sent_id": [1, 2, 0, 12, 4, 18]} +{"sent_id": [1, 10, 0, 2, 9, 12]} +{"sent_id": [1, 8, 9, 7, 2, 13]} +{"sent_id": [1, 2, 4, 8, 5, 10]} +{"sent_id": [1, 3, 2, 13, 15, 0]} +{"sent_id": [5, 9, 6, 7, 4, 2]} +{"sent_id": [0, 10, 3, 4, 11, 5]} +{"sent_id": [9, 17, 5, 7, 2, 6]} +{"sent_id": [3, 9, 1, 8, 2, 16]} +{"sent_id": [1, 23, 2, 0, 7, 3]} +{"sent_id": [4, 8, 10, 7, 13, 9]} +{"sent_id": [0, 4, 10, 3, 1, 11]} +{"sent_id": [3, 1, 7, 8, 2, 0]} +{"sent_id": [6, 2, 0, 1, 9, 4]} +{"sent_id": [3, 4, 1, 2, 5, 7]} +{"sent_id": [3, 4, 0, 14, 1, 5]} +{"sent_id": [0, 2, 3, 1, 7, 11]} +{"sent_id": [0, 2, 3, 4, 16, 1]} +{"sent_id": [9, 1, 3, 2, 0, 5]} +{"sent_id": [5, 4, 0, 11, 10, 2]} +{"sent_id": [0, 1, 4, 6, 2, 8]} +{"sent_id": [1, 8, 2, 0, 18, 3]} +{"sent_id": [13, 0, 1, 10, 6, 2]} +{"sent_id": [11, 0, 1, 4, 2, 5]} +{"sent_id": [2, 1, 3, 5, 10, 0]} +{"sent_id": [3, 10, 11, 19, 12, 2]} +{"sent_id": [3, 1, 11, 2, 0, 8]} +{"sent_id": [5, 1, 11, 7, 2, 4]} +{"sent_id": [3, 1, 0, 2, 10, 9]} +{"sent_id": [0, 1, 4, 2, 11, 5]} +{"sent_id": [2, 4, 3, 5, 6, 16]} +{"sent_id": [1, 4, 2, 5, 6, 13]} +{"sent_id": [3, 10, 1, 4, 8, 0]} +{"sent_id": [2, 3, 1, 4, 21, 20]} +{"sent_id": [5, 8, 9, 7, 2, 6]} +{"sent_id": [3, 2, 4, 11, 6, 1]} +{"sent_id": [0, 11, 2, 1, 10, 4]} +{"sent_id": [1, 3, 2, 7, 4, 10]} +{"sent_id": [3, 2, 4, 9, 5, 0]} +{"sent_id": [3, 4, 11, 1, 0, 8]} +{"sent_id": [2, 1, 4, 3, 0, 15]} +{"sent_id": [2, 1, 3, 5, 15, 7]} +{"sent_id": [1, 2, 9, 8, 0, 14]} +{"sent_id": [2, 5, 3, 0, 7, 6]} +{"sent_id": [4, 1, 3, 2, 11, 0]} +{"sent_id": [0, 11, 3, 5, 4, 16]} +{"sent_id": [3, 2, 0, 1, 6, 8]} +{"sent_id": [1, 3, 2, 0, 8, 12]} +{"sent_id": [3, 11, 17, 9, 15, 0]} +{"sent_id": [3, 4, 5, 6, 0, 11]} +{"sent_id": [0, 6, 3, 4, 1, 17]} +{"sent_id": [3, 9, 0, 1, 2, 16]} +{"sent_id": [1, 3, 2, 0, 6, 4]} +{"sent_id": [0, 6, 4, 1, 10, 5]} +{"sent_id": [10, 8, 9, 20, 0, 19]} +{"sent_id": [0, 11, 12, 2, 1, 6]} +{"sent_id": [3, 7, 11, 2, 8, 10]} +{"sent_id": [3, 1, 0, 6, 2, 7]} +{"sent_id": [2, 0, 1, 6, 4, 9]} +{"sent_id": [1, 0, 4, 3, 2, 12]} +{"sent_id": [11, 3, 7, 2, 9, 1]} +{"sent_id": [1, 13, 2, 6, 5, 7]} +{"sent_id": [14, 6, 17, 8, 12, 3]} +{"sent_id": [1, 3, 16, 5, 4, 0]} +{"sent_id": [3, 8, 2, 7, 10, 1]} +{"sent_id": [1, 2, 9, 0, 3, 11]} +{"sent_id": [0, 4, 5, 3, 16, 1]} +{"sent_id": [3, 1, 2, 4, 5, 0]} +{"sent_id": [1, 0, 2, 5, 9, 6]} +{"sent_id": [3, 4, 2, 7, 5, 6]} +{"sent_id": [0, 2, 7, 1, 5, 9]} +{"sent_id": [0, 2, 3, 1, 9, 4]} +{"sent_id": [10, 4, 7, 3, 5, 0]} +{"sent_id": [3, 2, 0, 4, 8, 1]} +{"sent_id": [1, 2, 0, 6, 3, 4]} +{"sent_id": [0, 4, 2, 9, 5, 3]} +{"sent_id": [3, 1, 4, 2, 0, 5]} +{"sent_id": [12, 3, 1, 10, 2, 7]} +{"sent_id": [2, 0, 3, 1, 5, 12]} +{"sent_id": [5, 3, 6, 17, 0, 10]} +{"sent_id": [8, 1, 5, 6, 0, 4]} +{"sent_id": [2, 0, 3, 5, 4, 9]} +{"sent_id": [1, 3, 5, 2, 6, 0]} +{"sent_id": [0, 8, 17, 5, 3, 16]} +{"sent_id": [8, 11, 3, 7, 1, 6]} +{"sent_id": [3, 6, 2, 4, 1, 9]} +{"sent_id": [5, 6, 1, 8, 0, 7]} +{"sent_id": [6, 1, 8, 2, 7, 0]} +{"sent_id": [0, 2, 3, 4, 14, 21]} +{"sent_id": [0, 1, 3, 16, 2, 9]} +{"sent_id": [2, 3, 1, 0, 7, 5]} +{"sent_id": [4, 5, 3, 1, 13, 8]} +{"sent_id": [2, 8, 1, 4, 12, 6]} +{"sent_id": [0, 3, 10, 2, 1, 9]} +{"sent_id": [3, 5, 11, 0, 2, 1]} +{"sent_id": [1, 3, 4, 0, 5, 12]} +{"sent_id": [0, 4, 5, 1, 11, 2]} +{"sent_id": [1, 3, 4, 2, 5, 6]} +{"sent_id": [1, 5, 3, 6, 2, 4]} +{"sent_id": [3, 7, 8, 4, 6, 17]} +{"sent_id": [1, 2, 13, 8, 5, 4]} +{"sent_id": [1, 10, 2, 11, 9, 12]} +{"sent_id": [1, 10, 2, 0, 7, 14]} +{"sent_id": [9, 3, 1, 5, 12, 2]} +{"sent_id": [3, 10, 2, 1, 4, 11]} +{"sent_id": [1, 2, 6, 0, 3, 9]} +{"sent_id": [0, 6, 1, 4, 2, 5]} +{"sent_id": [3, 2, 0, 5, 8, 4]} +{"sent_id": [1, 17, 4, 2, 8, 0]} +{"sent_id": [4, 0, 1, 3, 10, 5]} +{"sent_id": [1, 3, 16, 0, 2, 4]} +{"sent_id": [2, 3, 1, 14, 10, 11]} +{"sent_id": [1, 5, 2, 0, 4, 3]} +{"sent_id": [1, 2, 3, 0, 5, 13]} +{"sent_id": [0, 1, 2, 4, 7, 3]} +{"sent_id": [1, 2, 3, 9, 7, 14]} +{"sent_id": [9, 4, 5, 3, 7, 1]} +{"sent_id": [1, 5, 0, 16, 6, 7]} +{"sent_id": [0, 1, 4, 8, 3, 6]} +{"sent_id": [0, 16, 1, 5, 7, 10]} +{"sent_id": [1, 3, 12, 11, 2, 14]} +{"sent_id": [2, 4, 3, 0, 6, 5]} +{"sent_id": [3, 1, 11, 14, 4, 2]} +{"sent_id": [1, 4, 0, 5, 10, 11]} +{"sent_id": [3, 1, 2, 10, 4, 0]} +{"sent_id": [3, 2, 0, 1, 4, 5]} +{"sent_id": [8, 3, 0, 4, 1, 2]} +{"sent_id": [1, 0, 2, 3, 5, 6]} +{"sent_id": [6, 7, 11, 1, 10, 18]} +{"sent_id": [2, 1, 10, 3, 0, 7]} +{"sent_id": [2, 3, 0, 9, 18, 1]} +{"sent_id": [0, 1, 2, 5, 3, 14]} +{"sent_id": [8, 2, 4, 3, 12, 0]} +{"sent_id": [14, 15, 3, 4, 9, 6]} +{"sent_id": [3, 15, 0, 2, 5, 13]} +{"sent_id": [4, 5, 1, 2, 12, 0]} +{"sent_id": [2, 8, 3, 13, 4, 6]} +{"sent_id": [1, 3, 8, 2, 13, 10]} +{"sent_id": [2, 9, 1, 0, 7, 4]} +{"sent_id": [4, 2, 3, 1, 0, 5]} +{"sent_id": [0, 4, 1, 3, 11, 6]} +{"sent_id": [2, 3, 1, 0, 4, 6]} +{"sent_id": [0, 1, 2, 7, 4, 8]} +{"sent_id": [5, 6, 4, 0, 2, 1]} +{"sent_id": [1, 0, 3, 2, 6, 9]} +{"sent_id": [4, 3, 1, 9, 2, 6]} +{"sent_id": [3, 4, 5, 2, 1, 0]} +{"sent_id": [5, 0, 15, 10, 9, 4]} +{"sent_id": [1, 0, 2, 4, 3, 5]} +{"sent_id": [2, 15, 3, 16, 5, 4]} +{"sent_id": [3, 1, 5, 4, 6, 0]} +{"sent_id": [1, 5, 2, 3, 13, 6]} +{"sent_id": [1, 0, 2, 3, 8, 5]} +{"sent_id": [3, 12, 0, 6, 11, 2]} +{"sent_id": [0, 4, 1, 6, 3, 5]} +{"sent_id": [5, 4, 3, 9, 2, 7]} +{"sent_id": [2, 1, 4, 5, 6, 7]} +{"sent_id": [1, 2, 8, 4, 3, 0]} +{"sent_id": [1, 2, 3, 4, 0, 6]} +{"sent_id": [5, 1, 6, 2, 4, 3]} +{"sent_id": [0, 2, 1, 5, 3, 4]} +{"sent_id": [3, 1, 2, 12, 0, 4]} +{"sent_id": [10, 7, 4, 5, 6, 12]} +{"sent_id": [3, 4, 8, 9, 1, 0]} +{"sent_id": [3, 2, 1, 7, 4, 8]} +{"sent_id": [1, 9, 7, 2, 6, 0]} +{"sent_id": [1, 0, 5, 7, 8, 4]} +{"sent_id": [0, 9, 7, 13, 1, 10]} +{"sent_id": [4, 19, 3, 0, 5, 2]} +{"sent_id": [1, 4, 0, 5, 2, 3]} +{"sent_id": [1, 2, 4, 3, 9, 6]} +{"sent_id": [1, 2, 6, 12, 7, 8]} +{"sent_id": [1, 4, 7, 0, 20, 13]} +{"sent_id": [4, 3, 1, 2, 13, 0]} +{"sent_id": [2, 1, 4, 3, 0, 6]} +{"sent_id": [12, 2, 3, 1, 7, 0]} +{"sent_id": [1, 9, 10, 11, 4, 3]} +{"sent_id": [3, 6, 1, 2, 5, 10]} +{"sent_id": [2, 5, 4, 6, 10, 8]} +{"sent_id": [2, 1, 12, 11, 9, 6]} +{"sent_id": [0, 4, 2, 1, 11, 12]} +{"sent_id": [0, 3, 1, 11, 2, 12]} +{"sent_id": [1, 6, 5, 2, 18, 19]} +{"sent_id": [2, 3, 4, 0, 6, 5]} +{"sent_id": [3, 1, 14, 2, 18, 11]} +{"sent_id": [3, 1, 2, 4, 9, 7]} +{"sent_id": [8, 3, 5, 10, 6, 11]} +{"sent_id": [3, 8, 11, 10, 5, 14]} +{"sent_id": [7, 0, 9, 4, 6, 2]} +{"sent_id": [4, 6, 0, 16, 11, 2]} +{"sent_id": [1, 2, 5, 0, 9, 10]} +{"sent_id": [0, 6, 2, 3, 5, 1]} +{"sent_id": [1, 5, 0, 4, 9, 2]} +{"sent_id": [5, 3, 4, 2, 1, 0]} +{"sent_id": [1, 2, 4, 16, 14, 15]} +{"sent_id": [14, 2, 0, 13, 9, 8]} +{"sent_id": [1, 5, 3, 11, 2, 4]} +{"sent_id": [6, 1, 0, 2, 4, 10]} +{"sent_id": [2, 1, 3, 8, 11, 4]} +{"sent_id": [3, 0, 2, 1, 5, 4]} +{"sent_id": [2, 1, 3, 8, 7, 6]} +{"sent_id": [3, 1, 0, 4, 2, 5]} +{"sent_id": [3, 4, 0, 1, 10, 11]} +{"sent_id": [1, 2, 3, 14, 12, 8]} +{"sent_id": [2, 10, 3, 0, 11, 4]} +{"sent_id": [5, 14, 8, 7, 0, 15]} +{"sent_id": [1, 2, 0, 3, 9, 8]} +{"sent_id": [5, 8, 3, 9, 11, 6]} +{"sent_id": [4, 0, 3, 5, 1, 9]} +{"sent_id": [1, 3, 10, 0, 8, 5]} +{"sent_id": [1, 0, 6, 2, 9, 5]} +{"sent_id": [0, 9, 4, 5, 8, 1]} +{"sent_id": [2, 1, 0, 5, 4, 6]} +{"sent_id": [2, 1, 3, 0]} +{"sent_id": [6, 4, 9, 1, 8, 0]} +{"sent_id": [3, 11, 0, 2, 1, 6]} +{"sent_id": [4, 3, 11, 0, 10, 2]} +{"sent_id": [1, 2, 3, 10, 4, 5]} +{"sent_id": [1, 7, 2, 11, 4, 3]} +{"sent_id": [3, 2, 4, 5, 6, 16]} +{"sent_id": [1, 2, 5, 16, 0, 11]} +{"sent_id": [0, 5, 6, 7, 4, 2]} +{"sent_id": [1, 2, 4, 5, 0, 3]} +{"sent_id": [3, 1, 10, 0, 7, 8]} +{"sent_id": [0, 1, 13, 17, 7, 4]} +{"sent_id": [1, 0, 2, 3, 6, 4]} +{"sent_id": [1, 2, 0, 8, 6, 3]} +{"sent_id": [6, 5, 16, 0, 2, 4]} +{"sent_id": [3, 2, 1, 5, 4, 14]} +{"sent_id": [1, 2, 3, 10, 4, 7]} +{"sent_id": [1, 0, 3, 8, 6, 2]} +{"sent_id": [1, 2, 5, 9, 3, 10]} +{"sent_id": [1, 0, 5, 3, 11, 9]} +{"sent_id": [0, 3, 4, 1, 2, 12]} +{"sent_id": [2, 1, 6, 7, 0, 3]} +{"sent_id": [3, 2, 1, 0, 4, 9]} +{"sent_id": [10, 5, 7, 4, 15, 11]} +{"sent_id": [11, 3, 1, 8, 2, 0]} +{"sent_id": [1, 6, 0, 2, 7, 4]} +{"sent_id": [9, 3, 8, 2, 1, 4]} +{"sent_id": [1, 6, 5, 12, 2, 0]} +{"sent_id": [6, 0, 8, 2, 9, 7]} +{"sent_id": [3, 15, 1, 7, 2, 4]} +{"sent_id": [1, 2, 7, 15, 11, 6]} +{"sent_id": [2, 8, 1, 4, 5, 6]} +{"sent_id": [3, 1, 2, 8, 6, 4]} +{"sent_id": [3, 2, 5, 9, 17, 1]} +{"sent_id": [1, 5, 4, 2, 10, 11]} +{"sent_id": [0, 7, 1, 2, 17, 11]} +{"sent_id": [10, 6, 9, 4, 11, 7]} +{"sent_id": [2, 12, 9, 8, 5, 1]} +{"sent_id": [3, 1, 15, 2, 14, 11]} +{"sent_id": [3, 4, 5, 6, 7, 15]} +{"sent_id": [1, 2, 3, 0, 4, 6]} +{"sent_id": [3, 2, 1, 9, 5, 0]} +{"sent_id": [9, 2, 1, 4, 7, 3]} +{"sent_id": [1, 0, 3, 4, 8, 2]} +{"sent_id": [1, 5, 2, 11, 6, 12]} +{"sent_id": [4, 0, 1, 5, 8, 10]} +{"sent_id": [4, 0, 3, 9, 6, 2]} +{"sent_id": [1, 8, 2, 0, 9, 6]} +{"sent_id": [4, 0, 10, 7, 3, 1]} +{"sent_id": [1, 2, 4, 3, 0, 6]} +{"sent_id": [2, 3, 9, 4, 7, 10]} +{"sent_id": [3, 4, 5, 2, 1, 7]} +{"sent_id": [0, 6, 4, 1, 3, 9]} +{"sent_id": [2, 9, 0, 8, 5, 3]} +{"sent_id": [1, 2, 6, 3, 0, 8]} +{"sent_id": [1, 7, 6, 2, 14, 0]} +{"sent_id": [5, 1, 3, 8, 2, 10]} +{"sent_id": [1, 2, 6, 0, 5, 3]} +{"sent_id": [4, 1, 0, 3, 2, 5]} +{"sent_id": [5, 1, 2, 10, 4, 7]} +{"sent_id": [5, 1, 0, 2, 4, 12]} +{"sent_id": [0, 1, 4, 2, 3, 8]} +{"sent_id": [1, 3, 0, 2, 6, 8]} +{"sent_id": [0, 2, 6, 4, 3, 14]} +{"sent_id": [2, 3, 9, 10, 11, 17]} +{"sent_id": [1, 2, 3, 14, 10, 11]} +{"sent_id": [12, 1, 4, 0, 2, 16]} +{"sent_id": [1, 2, 4, 5, 3, 9]} +{"sent_id": [1, 2, 0, 12, 5, 11]} +{"sent_id": [3, 10, 0, 4, 1, 2]} +{"sent_id": [1, 5, 3, 15, 0, 4]} +{"sent_id": [1, 4, 2, 0, 7, 3]} +{"sent_id": [2, 5, 3, 0, 13, 8]} +{"sent_id": [1, 2, 5, 4, 0, 6]} +{"sent_id": [0, 4, 9, 8, 3, 1]} +{"sent_id": [3, 4, 5, 9, 11, 6]} +{"sent_id": [3, 21, 1, 4, 7, 8]} +{"sent_id": [1, 8, 4, 3, 15, 2]} +{"sent_id": [7, 2, 3, 0, 6, 12]} +{"sent_id": [5, 1, 4, 2, 6, 7]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [6, 3, 12, 11, 1, 2]} +{"sent_id": [4, 8, 2, 5, 0, 10]} +{"sent_id": [0, 1, 8, 12, 7, 4]} +{"sent_id": [4, 2, 3, 1, 5, 8]} +{"sent_id": [0, 4, 3, 1, 6, 5]} +{"sent_id": [2, 0, 3, 7, 8, 4]} +{"sent_id": [1, 2, 9, 6, 4, 5]} +{"sent_id": [1, 2, 13, 0, 3, 5]} +{"sent_id": [4, 5, 0, 2, 3, 6]} +{"sent_id": [3, 2, 13, 6, 1, 14]} +{"sent_id": [1, 5, 8, 2, 3, 4]} +{"sent_id": [2, 4, 3, 7, 10, 5]} +{"sent_id": [1, 6, 8, 7, 4, 0]} +{"sent_id": [2, 4, 1, 3, 5, 7]} +{"sent_id": [1, 2, 5, 12, 15, 13]} +{"sent_id": [10, 1, 16, 8, 12, 9]} +{"sent_id": [3, 2, 8, 1, 0, 14]} +{"sent_id": [4, 5, 1, 17, 14, 20]} +{"sent_id": [1, 2, 3, 11, 10, 7]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [0, 2, 3, 1, 6, 14]} +{"sent_id": [3, 1, 0, 10, 14, 2]} +{"sent_id": [2, 4, 5, 3, 7, 0]} +{"sent_id": [4, 0, 2, 1, 10, 6]} +{"sent_id": [0, 17, 4, 1, 15, 6]} +{"sent_id": [2, 1, 8, 13, 9, 20]} +{"sent_id": [4, 9, 3, 0, 1, 5]} +{"sent_id": [2, 4, 1, 12, 0, 5]} +{"sent_id": [4, 1, 0, 3, 2, 8]} +{"sent_id": [1, 2, 3, 9, 4, 7]} +{"sent_id": [14, 2, 1, 6, 0, 5]} +{"sent_id": [0, 3, 5, 16, 1, 4]} +{"sent_id": [3, 4, 2, 5, 1, 12]} +{"sent_id": [4, 2, 1, 12, 0, 7]} +{"sent_id": [9, 8, 7, 0, 3, 4]} +{"sent_id": [3, 1, 0, 12, 2, 4]} +{"sent_id": [7, 0, 9, 14, 15, 17]} +{"sent_id": [1, 4, 2, 9, 0, 8]} +{"sent_id": [0, 1, 14, 4, 3, 13]} +{"sent_id": [13, 12, 8, 15, 16, 0]} +{"sent_id": [1, 0, 6, 9, 11, 2]} +{"sent_id": [2, 1, 4, 3, 0, 5]} +{"sent_id": [2, 1, 3, 8, 4, 6]} +{"sent_id": [1, 3, 2, 4, 8, 5]} +{"sent_id": [0, 1, 7, 2, 6, 15]} +{"sent_id": [4, 1, 5, 13, 2, 6]} +{"sent_id": [3, 4, 5, 0, 2, 1]} +{"sent_id": [5, 0, 18, 10, 3, 2]} +{"sent_id": [9, 8, 5, 10, 1, 17]} +{"sent_id": [2, 0, 18, 19, 3, 4]} +{"sent_id": [0, 1, 2, 4, 3, 14]} +{"sent_id": [1, 4, 2, 3, 5, 8]} +{"sent_id": [3, 0, 13, 1, 10, 12]} +{"sent_id": [4, 3, 15, 2, 1, 5]} +{"sent_id": [1, 2, 3, 16, 5, 17]} +{"sent_id": [2, 10, 11, 9, 6, 8]} +{"sent_id": [13, 2, 16, 15, 1, 3]} +{"sent_id": [1, 3, 6, 0, 2, 5]} +{"sent_id": [0, 14, 1, 15, 2, 3]} +{"sent_id": [3, 4, 0, 2, 5, 11]} +{"sent_id": [1, 0, 3, 5, 2, 7]} +{"sent_id": [4, 5, 0, 1, 6, 11]} +{"sent_id": [0, 1, 4, 5, 14, 10]} +{"sent_id": [0, 9, 3, 1, 8, 7]} +{"sent_id": [1, 2, 7, 11, 3, 10]} +{"sent_id": [1, 5, 7, 6, 2, 14]} +{"sent_id": [1, 2, 13, 15, 8, 0]} +{"sent_id": [1, 2, 0, 8, 9, 5]} +{"sent_id": [1, 13, 2, 10, 11, 14]} +{"sent_id": [1, 0, 4, 3, 2, 10]} +{"sent_id": [4, 0, 11, 1, 2, 8]} +{"sent_id": [2, 1, 5, 7, 6, 9]} +{"sent_id": [1, 4, 2, 3, 0, 11]} +{"sent_id": [1, 2, 14, 5, 6, 3]} +{"sent_id": [1, 2, 16, 0, 11, 12]} +{"sent_id": [0, 4, 3, 5, 7, 18]} +{"sent_id": [1, 4, 3, 2, 9, 5]} +{"sent_id": [1, 3, 2, 14, 15, 6]} +{"sent_id": [1, 5, 13, 0, 11, 7]} +{"sent_id": [14, 0, 5, 2, 6, 3]} +{"sent_id": [4, 2, 1, 3, 0, 9]} +{"sent_id": [0, 1, 6, 7, 2, 15]} +{"sent_id": [0, 7, 20, 21, 6, 16]} +{"sent_id": [1, 2, 5, 0, 7, 4]} +{"sent_id": [5, 4, 0, 1, 2, 3]} +{"sent_id": [8, 0, 7, 2, 1, 4]} +{"sent_id": [2, 1, 12, 3, 4, 0]} +{"sent_id": [4, 0, 2, 1, 3, 13]} +{"sent_id": [1, 13, 5, 7, 8, 2]} +{"sent_id": [0, 1, 2, 8, 9, 3]} +{"sent_id": [16, 0, 7, 5, 18, 10]} +{"sent_id": [2, 1, 0, 5, 4, 3]} +{"sent_id": [13, 0, 5, 3, 1, 2]} +{"sent_id": [3, 4, 2, 5, 18, 0]} +{"sent_id": [1, 4, 2, 3, 6, 8]} +{"sent_id": [1, 0, 2, 3, 5, 6]} +{"sent_id": [2, 3, 4, 5, 8, 0]} +{"sent_id": [1, 4, 5, 6, 7, 3]} +{"sent_id": [1, 0, 2, 6, 9, 16]} +{"sent_id": [5, 1, 2, 13, 12, 4]} +{"sent_id": [3, 1, 2, 0, 11, 5]} +{"sent_id": [5, 8, 3, 11, 6, 1]} +{"sent_id": [10, 4, 6, 3, 5, 2]} +{"sent_id": [8, 1, 3, 2, 4, 9]} +{"sent_id": [1, 5, 4, 10, 0, 6]} +{"sent_id": [0, 1, 5, 4, 8, 6]} +{"sent_id": [3, 4, 1, 9, 8, 0]} +{"sent_id": [3, 12, 11, 1, 0, 6]} +{"sent_id": [1, 3, 4, 13, 2, 0]} +{"sent_id": [0, 2, 1, 8, 14, 10]} +{"sent_id": [4, 6, 5, 7, 10, 9]} +{"sent_id": [1, 2, 10, 6, 7, 5]} +{"sent_id": [0, 5, 1, 10, 4, 3]} +{"sent_id": [2, 7, 1, 5, 4, 12]} +{"sent_id": [4, 6, 5, 0, 1, 7]} +{"sent_id": [0, 1, 6, 4, 11, 2]} +{"sent_id": [5, 6, 1, 2, 3, 0]} +{"sent_id": [0, 4, 1, 3, 9, 2]} +{"sent_id": [1, 3, 2, 0, 4, 7]} +{"sent_id": [3, 1, 2, 9, 17, 10]} +{"sent_id": [1, 2, 14, 16, 4, 0]} +{"sent_id": [4, 8, 0, 2, 1, 3]} +{"sent_id": [2, 3, 0, 1, 4, 7]} +{"sent_id": [1, 7, 3, 2, 8, 9]} +{"sent_id": [1, 2, 0, 4, 3, 6]} +{"sent_id": [1, 15, 7, 12, 0, 4]} +{"sent_id": [3, 4, 1, 2, 0, 9]} +{"sent_id": [4, 0, 8, 1, 5, 14]} +{"sent_id": [3, 12, 0, 1, 10, 2]} +{"sent_id": [1, 2, 10, 5, 7, 0]} +{"sent_id": [1, 9, 3, 2, 8, 0]} +{"sent_id": [1, 2, 0, 5, 10, 15]} +{"sent_id": [4, 3, 12, 11, 13, 15]} +{"sent_id": [4, 3, 5, 1, 10, 2]} +{"sent_id": [3, 1, 0, 2, 5, 7]} +{"sent_id": [2, 3, 1, 5, 6, 14]} +{"sent_id": [1, 2, 5, 8, 3, 11]} +{"sent_id": [5, 7, 6, 10, 4, 11]} +{"sent_id": [3, 4, 5, 6, 1, 0]} +{"sent_id": [3, 8, 1, 2, 0, 4]} +{"sent_id": [0, 2, 1, 9, 11, 3]} +{"sent_id": [0, 7, 2, 4, 1, 5]} +{"sent_id": [2, 3, 1, 5, 7, 0]} +{"sent_id": [1, 0, 2, 7, 4, 13]} +{"sent_id": [1, 3, 4, 14, 2, 5]} +{"sent_id": [1, 9, 3, 2, 11, 0]} +{"sent_id": [2, 1, 6, 4, 5, 0]} +{"sent_id": [2, 1, 13, 12, 8, 14]} +{"sent_id": [1, 2, 10, 13, 11, 9]} +{"sent_id": [4, 3, 5, 1, 15, 8]} +{"sent_id": [1, 13, 2, 3, 6, 0]} +{"sent_id": [4, 0, 1, 3, 9, 2]} +{"sent_id": [4, 3, 2, 13, 14, 1]} +{"sent_id": [1, 3, 0, 4, 10, 2]} +{"sent_id": [0, 1, 3, 4, 2, 6]} +{"sent_id": [1, 5, 0, 6, 8, 7]} +{"sent_id": [3, 1, 7, 0, 2, 9]} +{"sent_id": [1, 7, 5, 4, 0, 2]} +{"sent_id": [1, 0, 2, 15, 3, 7]} +{"sent_id": [2, 1, 3, 13, 0, 11]} +{"sent_id": [1, 3, 0, 7, 2, 9]} +{"sent_id": [0, 1, 5, 4, 3, 2]} +{"sent_id": [4, 1, 3, 7, 2, 0]} +{"sent_id": [2, 1, 8, 0, 6, 17]} +{"sent_id": [1, 2, 5, 12, 0, 8]} +{"sent_id": [5, 0, 3, 8, 2, 1]} +{"sent_id": [5, 15, 16, 6, 3, 17]} +{"sent_id": [0, 1, 2, 3, 4, 5]} +{"sent_id": [6, 1, 20, 12, 13, 14]} +{"sent_id": [3, 2, 1, 13, 0, 4]} +{"sent_id": [2, 3, 1, 10, 4, 13]} +{"sent_id": [0, 4, 2, 3, 5, 1]} +{"sent_id": [1, 9, 2, 5, 8, 0]} +{"sent_id": [4, 3, 1, 0, 12, 2]} +{"sent_id": [2, 1, 3, 17, 18, 0]} +{"sent_id": [8, 9, 2, 3, 1, 10]} +{"sent_id": [0, 11, 9, 1, 15, 2]} +{"sent_id": [1, 0, 4, 11, 3, 8]} +{"sent_id": [0, 7, 1, 5, 8, 3]} +{"sent_id": [5, 19, 6, 18, 1, 7]} +{"sent_id": [6, 1, 11, 0, 7, 10]} +{"sent_id": [3, 4, 9, 2, 1, 0]} +{"sent_id": [5, 2, 7, 14, 3, 4]} +{"sent_id": [1, 2, 7, 9, 4, 5]} +{"sent_id": [3, 4, 0, 11, 1, 2]} +{"sent_id": [1, 2, 6, 3, 0, 4]} +{"sent_id": [2, 4, 10, 5, 11, 15]} +{"sent_id": [15, 1, 2, 4, 0, 5]} +{"sent_id": [2, 0, 4, 1, 3, 9]} +{"sent_id": [1, 6, 0, 13, 9, 2]} +{"sent_id": [8, 7, 2, 3, 1, 12]} +{"sent_id": [1, 3, 2, 4, 13, 7]} +{"sent_id": [6, 2, 12, 7, 1, 15]} +{"sent_id": [0, 3, 1, 2, 17, 8]} +{"sent_id": [3, 1, 0, 15, 4, 16]} +{"sent_id": [3, 4, 12, 1, 0, 11]} +{"sent_id": [1, 2, 7, 9, 0, 3]} +{"sent_id": [12, 4, 2, 3, 0, 1]} +{"sent_id": [3, 2, 14, 15, 17, 1]} +{"sent_id": [2, 1, 3, 4, 0, 8]} +{"sent_id": [2, 5, 6, 4, 1, 14]} +{"sent_id": [1, 0, 2, 4, 8, 5]} +{"sent_id": [0, 4, 1, 3, 5, 7]} +{"sent_id": [0, 1, 2, 5, 7, 3]} +{"sent_id": [0, 2, 1, 5, 3, 13]} +{"sent_id": [0, 12, 15, 3, 1, 2]} +{"sent_id": [1, 6, 8, 2, 0, 7]} +{"sent_id": [3, 6, 2, 9, 1, 0]} +{"sent_id": [3, 2, 6, 1, 8, 0]} +{"sent_id": [13, 1, 3, 0, 2, 11]} +{"sent_id": [3, 0, 1, 4, 2, 6]} +{"sent_id": [2, 1, 4, 0, 5, 3]} +{"sent_id": [1, 4, 12, 8, 5, 2]} +{"sent_id": [3, 13, 4, 1, 0, 6]} +{"sent_id": [1, 5, 2, 0, 3, 16]} +{"sent_id": [3, 11, 0, 2, 14, 1]} +{"sent_id": [2, 0, 6, 4, 9, 1]} +{"sent_id": [0, 3, 1, 9, 4, 2]} +{"sent_id": [1, 6, 2, 4, 7, 5]} +{"sent_id": [4, 3, 11, 8, 14, 6]} +{"sent_id": [1, 5, 2, 6, 3, 4]} +{"sent_id": [2, 9, 1, 15, 5, 8]} +{"sent_id": [2, 3, 11, 0, 1, 8]} +{"sent_id": [3, 6, 10, 4, 0, 7]} +{"sent_id": [5, 6, 2, 1, 8, 0]} +{"sent_id": [2, 1, 3, 5, 0, 4]} +{"sent_id": [6, 17, 18, 7, 8, 3]} +{"sent_id": [2, 1, 5, 3, 12, 0]} +{"sent_id": [3, 4, 0, 1, 17, 2]} +{"sent_id": [1, 3, 5, 6, 2, 7]} +{"sent_id": [2, 6, 1, 3, 5, 0]} +{"sent_id": [1, 4, 2, 11, 3, 10]} +{"sent_id": [1, 3, 8, 7, 5, 0]} +{"sent_id": [1, 4, 16, 15, 3, 0]} +{"sent_id": [1, 5, 6, 4, 10, 11]} +{"sent_id": [4, 0, 1, 7, 3, 2]} +{"sent_id": [1, 3, 4, 5, 11, 2]} +{"sent_id": [2, 1, 6, 0, 3, 12]} +{"sent_id": [3, 1, 0, 9, 11, 2]} +{"sent_id": [2, 3, 0, 4, 5, 10]} +{"sent_id": [2, 1, 8, 7, 9, 0]} +{"sent_id": [1, 2, 3, 4, 5, 0]} +{"sent_id": [0, 4, 3, 1, 9, 2]} +{"sent_id": [1, 2, 3, 0, 11, 7]} +{"sent_id": [0, 1, 9, 2, 7, 11]} +{"sent_id": [1, 6, 2, 4, 3, 5]} +{"sent_id": [1, 4, 0, 5, 7, 2]} +{"sent_id": [0, 1, 5, 4, 2, 8]} +{"sent_id": [9, 4, 5, 3, 2, 6]} +{"sent_id": [3, 4, 7, 0, 6, 1]} +{"sent_id": [3, 0, 9, 1, 5, 2]} +{"sent_id": [1, 2, 4, 6, 5, 0]} +{"sent_id": [3, 0, 11, 4, 13, 12]} +{"sent_id": [2, 0, 14, 5, 1, 4]} +{"sent_id": [3, 4, 8, 12, 7, 5]} +{"sent_id": [2, 10, 9, 11, 3, 14]} +{"sent_id": [0, 18, 1, 2, 3, 19]} +{"sent_id": [0, 6, 1, 4, 5, 7]} +{"sent_id": [1, 0, 2, 6, 4, 10]} +{"sent_id": [3, 0, 2, 6, 11, 7]} +{"sent_id": [5, 1, 8, 0, 4, 6]} +{"sent_id": [0, 1, 3, 4, 7, 8]} +{"sent_id": [2, 1, 6, 3, 0, 4]} +{"sent_id": [1, 2, 10, 0, 17, 13]} +{"sent_id": [3, 11, 2, 1, 4, 10]} +{"sent_id": [5, 3, 7, 0, 4, 6]} +{"sent_id": [1, 6, 0, 11, 2, 3]} +{"sent_id": [6, 2, 0, 12, 4, 3]} +{"sent_id": [5, 6, 1, 8, 2, 16]} +{"sent_id": [3, 4, 5, 1, 0, 14]} +{"sent_id": [1, 5, 8, 2, 7, 0]} +{"sent_id": [1, 2, 11, 3, 9, 4]} +{"sent_id": [3, 1, 5, 2, 4, 10]} +{"sent_id": [1, 3, 7, 2, 0, 4]} +{"sent_id": [1, 2, 0, 8, 4, 3]} +{"sent_id": [2, 3, 9, 1, 7, 0]} +{"sent_id": [3, 2, 0, 1, 13, 9]} +{"sent_id": [3, 4, 8, 2, 0, 1]} +{"sent_id": [2, 3, 4, 5, 15, 22]} +{"sent_id": [2, 1, 13, 3, 5, 4]} +{"sent_id": [1, 0, 2, 8, 4, 3]} +{"sent_id": [3, 4, 0, 1, 2, 6]} +{"sent_id": [4, 5, 1, 2, 8, 6]} +{"sent_id": [0, 1, 4, 3, 10, 2]} +{"sent_id": [2, 1, 5, 12, 3, 0]} +{"sent_id": [2, 1, 3, 7, 5, 6]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [1, 2, 3, 14, 0, 13]} +{"sent_id": [1, 5, 6, 2, 3, 15]} +{"sent_id": [1, 2, 9, 3, 7, 5]} +{"sent_id": [9, 3, 2, 1, 4, 0]} +{"sent_id": [3, 1, 2, 10, 4, 5]} +{"sent_id": [0, 3, 4, 18, 6, 1]} +{"sent_id": [3, 4, 0, 17, 2, 1]} +{"sent_id": [3, 2, 0, 1, 10, 11]} +{"sent_id": [2, 0, 3, 12, 5, 1]} +{"sent_id": [0, 5, 1, 3, 15, 6]} +{"sent_id": [2, 9, 8, 1, 6, 5]} +{"sent_id": [3, 1, 4, 2, 11, 5]} +{"sent_id": [2, 1, 3, 6, 5, 0]} +{"sent_id": [2, 3, 8, 1, 0, 10]} +{"sent_id": [4, 0, 3, 8, 6, 2]} +{"sent_id": [4, 1, 0, 2, 14, 6]} +{"sent_id": [11, 0, 2, 12, 1, 9]} +{"sent_id": [5, 4, 9, 6, 0, 8]} +{"sent_id": [2, 3, 11, 4, 0, 1]} +{"sent_id": [5, 1, 3, 2, 11, 0]} +{"sent_id": [4, 0, 9, 2, 5, 1]} +{"sent_id": [7, 8, 1, 5, 4, 3]} +{"sent_id": [2, 3, 4, 1, 5, 11]} +{"sent_id": [1, 2, 3, 5, 6, 10]} +{"sent_id": [3, 2, 4, 10, 8, 11]} +{"sent_id": [1, 17, 2, 3, 15, 6]} +{"sent_id": [2, 1, 0, 4, 12, 11]} +{"sent_id": [1, 2, 4, 7, 9, 10]} +{"sent_id": [2, 17, 3, 7, 8, 9]} +{"sent_id": [3, 5, 4, 1, 12, 14]} +{"sent_id": [3, 1, 0, 4, 6, 7]} +{"sent_id": [5, 1, 6, 4, 7, 0]} +{"sent_id": [12, 9, 10, 5, 11, 14]} +{"sent_id": [1, 3, 0, 2, 9, 10]} +{"sent_id": [5, 16, 4, 8, 9, 15]} +{"sent_id": [3, 6, 1, 0, 7, 2]} +{"sent_id": [5, 16, 1, 3, 4, 7]} +{"sent_id": [2, 3, 4, 11, 5, 16]} +{"sent_id": [6, 1, 2, 3, 7, 4]} +{"sent_id": [1, 2, 0, 7, 11, 4]} +{"sent_id": [1, 2, 3, 4, 5, 13]} +{"sent_id": [1, 4, 2, 3, 6, 0]} +{"sent_id": [3, 0, 4, 2, 13, 7]} +{"sent_id": [0, 2, 5, 4, 1, 3]} +{"sent_id": [3, 4, 6, 12, 10, 15]} +{"sent_id": [16, 0, 4, 3, 2, 1]} +{"sent_id": [2, 3, 7, 5, 19, 0]} +{"sent_id": [7, 15, 5, 9, 10, 1]} +{"sent_id": [4, 2, 1, 9, 0, 3]} +{"sent_id": [4, 1, 3, 21, 6, 0]} +{"sent_id": [3, 5, 1, 6, 7, 0]} +{"sent_id": [1, 4, 0, 3, 10, 8]} +{"sent_id": [2, 0, 4, 5, 11, 1]} +{"sent_id": [0, 1, 5, 2, 16, 3]} +{"sent_id": [0, 1, 7, 13, 9, 3]} +{"sent_id": [9, 10, 1, 3, 2, 6]} +{"sent_id": [3, 1, 2, 0, 4, 10]} +{"sent_id": [3, 1, 11, 0, 2, 7]} +{"sent_id": [1, 0, 6, 2, 5, 9]} +{"sent_id": [20, 18, 16, 7, 3, 8]} +{"sent_id": [0, 2, 3, 8, 1, 5]} +{"sent_id": [3, 1, 2, 6, 9, 0]} +{"sent_id": [2, 12, 10, 1, 0, 11]} +{"sent_id": [0, 2, 1, 11, 3, 17]} +{"sent_id": [0, 4, 5, 11, 8, 9]} +{"sent_id": [5, 9, 12, 4, 13, 1]} +{"sent_id": [1, 2, 4, 3, 9, 6]} +{"sent_id": [1, 9, 2, 4, 5, 3]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [1, 6, 7, 8, 9, 10]} +{"sent_id": [2, 1, 5, 8, 6, 7]} +{"sent_id": [2, 1, 6, 3, 5, 10]} +{"sent_id": [1, 2, 5, 0, 11, 18]} +{"sent_id": [5, 1, 2, 0, 9, 6]} +{"sent_id": [4, 1, 3, 0, 8, 6]} +{"sent_id": [2, 1, 4, 5, 3, 8]} +{"sent_id": [2, 1, 6, 14, 15, 16]} +{"sent_id": [3, 5, 2, 0, 1, 11]} +{"sent_id": [1, 0, 3, 2, 10, 11]} +{"sent_id": [5, 3, 7, 9, 10, 1]} +{"sent_id": [5, 11, 6, 2, 3, 0]} +{"sent_id": [4, 0, 2, 9, 1, 10]} +{"sent_id": [3, 1, 12, 10, 11, 13]} +{"sent_id": [0, 5, 6, 3, 10, 4]} +{"sent_id": [3, 2, 1, 0, 8, 6]} +{"sent_id": [1, 4, 2, 5, 6, 9]} +{"sent_id": [4, 1, 2, 11, 3, 14]} +{"sent_id": [0, 3, 15, 16, 4, 1]} +{"sent_id": [4, 13, 2, 5, 6, 3]} +{"sent_id": [10, 3, 0, 13, 1, 4]} +{"sent_id": [3, 1, 2, 8, 0, 15]} +{"sent_id": [0, 5, 4, 3, 1, 6]} +{"sent_id": [14, 0, 23, 6, 2, 12]} +{"sent_id": [12, 17, 6, 7, 8, 9]} +{"sent_id": [1, 2, 6, 10, 9, 0]} +{"sent_id": [0, 1, 4, 3, 2, 5]} +{"sent_id": [3, 0, 5, 4, 1, 2]} +{"sent_id": [4, 9, 8, 2, 1, 3]} +{"sent_id": [3, 1, 2, 4, 7, 8]} +{"sent_id": [1, 2, 9, 4, 5, 0]} +{"sent_id": [4, 3, 2, 1, 7, 6]} +{"sent_id": [1, 2, 4, 10, 3, 6]} +{"sent_id": [3, 1, 2, 6, 0, 10]} +{"sent_id": [6, 10, 11, 2, 9, 12]} +{"sent_id": [0, 1, 5, 2, 14, 15]} +{"sent_id": [1, 3, 9, 0, 15, 8]} +{"sent_id": [1, 2, 0, 3, 7, 8]} +{"sent_id": [1, 6, 3, 4, 20, 0]} +{"sent_id": [5, 17, 16, 8, 7, 6]} +{"sent_id": [0, 1, 10, 7, 2, 8]} +{"sent_id": [0, 3, 1, 8, 5, 2]} +{"sent_id": [4, 1, 8, 7, 5, 3]} +{"sent_id": [0, 1, 2, 3, 5, 6]} +{"sent_id": [3, 4, 6, 5, 9, 13]} +{"sent_id": [3, 1, 0, 2, 4, 11]} +{"sent_id": [2, 3, 4, 0, 8, 6]} +{"sent_id": [1, 2, 10, 9, 11, 8]} +{"sent_id": [3, 2, 14, 0, 4, 17]} +{"sent_id": [0, 2, 3, 11, 9, 1]} +{"sent_id": [0, 5, 7, 6, 10, 2]} +{"sent_id": [1, 5, 4, 7, 3, 6]} +{"sent_id": [0, 15, 5, 13, 12, 7]} +{"sent_id": [3, 8, 1, 9, 11, 12]} +{"sent_id": [4, 2, 1, 5, 3, 7]} +{"sent_id": [10, 5, 4, 14, 11, 7]} +{"sent_id": [4, 15, 3, 1, 9, 11]} +{"sent_id": [3, 4, 5, 10, 15, 14]} +{"sent_id": [3, 10, 0, 12, 2, 14]} +{"sent_id": [4, 3, 2, 5, 1, 10]} +{"sent_id": [3, 4, 1, 2, 13, 15]} +{"sent_id": [4, 5, 15, 6, 8, 7]} +{"sent_id": [3, 0, 4, 11, 2, 9]} +{"sent_id": [1, 5, 4, 6, 3, 0]} +{"sent_id": [4, 0, 5, 1, 2, 3]} +{"sent_id": [1, 2, 5, 8, 7, 6]} +{"sent_id": [0, 2, 1, 3, 11, 10]} +{"sent_id": [3, 1, 6, 9, 2, 7]} +{"sent_id": [1, 15, 0, 4, 3, 8]} +{"sent_id": [1, 0, 3, 12, 4, 6]} +{"sent_id": [0, 1, 3, 2, 9, 5]} +{"sent_id": [2, 3, 0, 1, 6, 15]} +{"sent_id": [4, 1, 2, 6, 5, 0]} +{"sent_id": [0, 3, 1, 9, 14, 4]} +{"sent_id": [13, 0, 6, 8, 7, 1]} +{"sent_id": [0, 9, 7, 5, 13, 1]} +{"sent_id": [1, 0, 4, 7, 2, 6]} +{"sent_id": [2, 1, 4, 5, 3, 0]} +{"sent_id": [4, 3, 1, 2, 0, 5]} +{"sent_id": [3, 4, 2, 1, 8, 6]} +{"sent_id": [4, 0, 17, 16, 5, 9]} +{"sent_id": [3, 10, 1, 12, 11, 18]} +{"sent_id": [13, 0, 3, 1, 2, 12]} +{"sent_id": [0, 2, 13, 1, 8, 11]} +{"sent_id": [3, 4, 2, 8, 1, 7]} +{"sent_id": [3, 0, 1, 9, 21, 15]} +{"sent_id": [1, 7, 3, 0, 4, 2]} +{"sent_id": [3, 10, 4, 17, 8, 0]} +{"sent_id": [0, 1, 6, 5, 3, 7]} +{"sent_id": [1, 3, 4, 9, 7, 0]} +{"sent_id": [4, 2, 3, 0, 1, 5]} +{"sent_id": [3, 4, 22, 20, 1, 2]} +{"sent_id": [2, 6, 1, 0, 12, 3]} +{"sent_id": [2, 1, 6, 0, 10, 4]} +{"sent_id": [4, 11, 8, 3, 7, 5]} +{"sent_id": [0, 1, 2, 5, 11, 8]} +{"sent_id": [9, 2, 4, 1, 6, 3]} +{"sent_id": [3, 4, 2, 0, 1, 10]} +{"sent_id": [5, 6, 4, 7, 3, 9]} +{"sent_id": [0, 3, 1, 4, 2, 5]} +{"sent_id": [1, 3, 2, 5, 10, 0]} +{"sent_id": [0, 3, 1, 2, 11, 4]} +{"sent_id": [3, 2, 1, 8, 4, 7]} +{"sent_id": [1, 2, 13, 7, 6, 0]} +{"sent_id": [3, 5, 4, 0, 1, 13]} +{"sent_id": [5, 1, 4, 0, 2, 12]} +{"sent_id": [1, 2, 5, 4, 6, 8]} +{"sent_id": [3, 1, 2, 4, 0, 13]} +{"sent_id": [1, 2, 7, 5, 4, 3]} +{"sent_id": [1, 4, 12, 9, 2, 5]} +{"sent_id": [1, 3, 2, 9, 5, 10]} +{"sent_id": [9, 2, 13, 3, 0, 8]} +{"sent_id": [1, 3, 4, 0, 5, 8]} +{"sent_id": [1, 2, 8, 3, 9, 4]} +{"sent_id": [3, 5, 2, 4, 9, 16]} +{"sent_id": [3, 1, 4, 0, 2, 13]} +{"sent_id": [2, 3, 4, 10, 1, 5]} +{"sent_id": [1, 2, 4, 6, 0, 5]} +{"sent_id": [10, 0, 3, 8, 1, 13]} +{"sent_id": [1, 2, 5, 3, 0, 12]} +{"sent_id": [1, 8, 2, 3, 7, 4]} +{"sent_id": [3, 0, 12, 13, 4, 1]} +{"sent_id": [2, 3, 4, 1, 0, 16]} +{"sent_id": [2, 3, 4, 0, 5, 1]} +{"sent_id": [1, 4, 2, 5, 0, 6]} +{"sent_id": [4, 1, 11, 2, 9, 8]} +{"sent_id": [2, 0, 3, 4, 5, 10]} +{"sent_id": [12, 13, 0, 2, 14, 1]} +{"sent_id": [4, 1, 2, 0, 6, 7]} +{"sent_id": [4, 9, 10, 15, 6, 2]} +{"sent_id": [1, 2, 4, 9, 10, 0]} +{"sent_id": [0, 5, 1, 4, 6, 2]} +{"sent_id": [1, 0, 2, 12, 4, 15]} +{"sent_id": [2, 0, 8, 1, 4, 3]} +{"sent_id": [1, 0, 7, 12, 6, 4]} +{"sent_id": [3, 4, 11, 8, 17, 7]} +{"sent_id": [1, 3, 2, 12, 5, 8]} +{"sent_id": [1, 5, 2, 15, 0, 3]} +{"sent_id": [2, 3, 1, 4, 14, 0]} +{"sent_id": [1, 3, 20, 18, 13, 9]} +{"sent_id": [1, 10, 7, 9, 2, 4]} +{"sent_id": [3, 5, 0, 8, 7, 6]} +{"sent_id": [1, 2, 12, 4, 7, 11]} +{"sent_id": [1, 4, 3, 2, 0, 13]} +{"sent_id": [1, 2, 4, 3, 7, 6]} +{"sent_id": [5, 3, 2, 4, 1, 7]} +{"sent_id": [3, 4, 10, 1, 6, 2]} +{"sent_id": [6, 14, 22, 0, 1, 7]} +{"sent_id": [1, 3, 4, 2, 6, 13]} +{"sent_id": [3, 6, 2, 5, 1, 7]} +{"sent_id": [1, 4, 3, 6, 9, 2]} +{"sent_id": [2, 1, 5, 0, 6, 3]} +{"sent_id": [1, 3, 5, 4, 6, 2]} +{"sent_id": [1, 3, 2, 13, 4, 16]} +{"sent_id": [1, 2, 4, 5, 10, 7]} +{"sent_id": [3, 0, 1, 5, 14, 2]} +{"sent_id": [2, 9, 1, 5, 3, 7]} +{"sent_id": [0, 1, 8, 7, 4, 3]} +{"sent_id": [1, 3, 2, 0, 8, 5]} +{"sent_id": [1, 4, 5, 8, 13, 2]} +{"sent_id": [3, 4, 2, 1, 12, 0]} +{"sent_id": [1, 3, 2, 4, 12, 0]} +{"sent_id": [1, 3, 14, 5, 16, 13]} +{"sent_id": [3, 0, 4, 1, 2, 5]} +{"sent_id": [1, 0, 7, 11, 5, 2]} +{"sent_id": [3, 2, 4, 8, 7, 5]} +{"sent_id": [11, 0, 1, 2, 3, 4]} +{"sent_id": [4, 9, 1, 2, 5, 6]} +{"sent_id": [5, 4, 0, 1, 7, 17]} +{"sent_id": [2, 7, 5, 8, 3, 0]} +{"sent_id": [3, 4, 5, 2, 1, 6]} +{"sent_id": [2, 6, 1, 3, 7, 4]} +{"sent_id": [0, 7, 6, 16, 4, 15]} +{"sent_id": [2, 3, 6, 0, 1, 13]} +{"sent_id": [11, 1, 9, 4, 2, 16]} +{"sent_id": [2, 1, 4, 6, 0, 5]} +{"sent_id": [0, 11, 1, 3, 12, 10]} +{"sent_id": [3, 1, 0, 2, 8, 4]} +{"sent_id": [3, 2, 1, 12, 19, 17]} +{"sent_id": [2, 3, 5, 4, 1, 12]} +{"sent_id": [1, 3, 5, 2, 9, 12]} +{"sent_id": [5, 6, 13, 20, 19, 1]} +{"sent_id": [1, 7, 8, 0, 4, 10]} +{"sent_id": [3, 2, 11, 1, 4, 14]} +{"sent_id": [5, 4, 13, 3, 15, 12]} +{"sent_id": [1, 3, 2, 18, 0, 5]} +{"sent_id": [2, 8, 3, 1, 6, 9]} +{"sent_id": [1, 8, 5, 6, 17, 4]} +{"sent_id": [7, 1, 10, 16, 18, 15]} +{"sent_id": [1, 2, 12, 4, 0, 5]} +{"sent_id": [3, 5, 7, 4, 1, 2]} +{"sent_id": [3, 4, 2, 1, 5, 6]} +{"sent_id": [3, 13, 8, 2, 7, 5]} +{"sent_id": [0, 1, 7, 3, 2, 5]} +{"sent_id": [2, 3, 4, 17, 1, 18]} +{"sent_id": [3, 4, 7, 1, 0, 2]} +{"sent_id": [2, 4, 6, 3, 7, 8]} +{"sent_id": [1, 2, 3, 5, 4, 7]} +{"sent_id": [8, 4, 1, 6, 3, 2]} +{"sent_id": [7, 4, 8, 6, 5, 11]} +{"sent_id": [3, 4, 2, 1, 0, 5]} +{"sent_id": [1, 3, 7, 2, 6, 4]} +{"sent_id": [3, 2, 1, 11, 10, 0]} +{"sent_id": [4, 7, 5, 9, 2, 8]} +{"sent_id": [8, 4, 7, 5, 6, 0]} +{"sent_id": [3, 1, 6, 2, 5, 4]} +{"sent_id": [10, 1, 3, 4, 2, 17]} +{"sent_id": [6, 0, 7, 2, 8, 1]} +{"sent_id": [3, 1, 13, 4, 8, 0]} +{"sent_id": [4, 0, 1, 5, 2, 6]} +{"sent_id": [2, 5, 3, 1, 0, 4]} +{"sent_id": [3, 1, 5, 6, 2, 7]} +{"sent_id": [3, 1, 0, 2, 6, 5]} +{"sent_id": [2, 9, 4, 3, 8, 0]} +{"sent_id": [5, 0, 2, 3, 1, 14]} +{"sent_id": [5, 0, 2, 1, 22, 26]} +{"sent_id": [2, 3, 1, 0, 9, 7]} +{"sent_id": [3, 0, 1, 4, 17, 18]} +{"sent_id": [4, 1, 2, 0, 3, 7]} +{"sent_id": [7, 1, 27, 2, 9, 29]} +{"sent_id": [0, 2, 17, 10, 3, 4]} +{"sent_id": [4, 3, 1, 0, 15, 16]} +{"sent_id": [3, 16, 1, 18, 2, 4]} +{"sent_id": [1, 2, 4, 3, 6, 11]} +{"sent_id": [4, 19, 17, 0, 11, 1]} +{"sent_id": [2, 4, 3, 10, 0, 5]} +{"sent_id": [4, 0, 3, 11, 20, 9]} +{"sent_id": [1, 4, 2, 3, 5, 6]} +{"sent_id": [1, 2, 8, 5, 6, 4]} +{"sent_id": [1, 3, 2, 5, 6, 0]} +{"sent_id": [1, 11, 3, 8, 5, 0]} +{"sent_id": [3, 11, 7, 9, 8, 4]} +{"sent_id": [3, 9, 1, 4, 2, 8]} +{"sent_id": [1, 2, 3, 4, 5, 15]} +{"sent_id": [1, 4, 9, 12, 3, 2]} +{"sent_id": [2, 1, 9, 7, 0, 5]} +{"sent_id": [1, 2, 4, 6, 5, 8]} +{"sent_id": [1, 15, 2, 4, 0, 5]} +{"sent_id": [1, 3, 4, 2, 6, 12]} +{"sent_id": [2, 3, 1, 5, 0, 6]} +{"sent_id": [14, 13, 1, 6, 8, 2]} +{"sent_id": [3, 6, 4, 7, 2, 10]} +{"sent_id": [3, 1, 0, 14, 4, 2]} +{"sent_id": [2, 0, 1, 10, 7, 8]} +{"sent_id": [4, 15, 5, 3, 0, 1]} +{"sent_id": [3, 4, 2, 0, 11, 12]} +{"sent_id": [1, 2, 3, 9, 6, 4]} +{"sent_id": [1, 9, 4, 2, 3, 0]} +{"sent_id": [1, 3, 2, 8, 10, 9]} +{"sent_id": [4, 0, 2, 6, 5, 3]} +{"sent_id": [10, 8, 4, 13, 16, 11]} +{"sent_id": [11, 1, 16, 2, 10, 4]} +{"sent_id": [4, 6, 3, 5, 7, 1]} +{"sent_id": [8, 9, 4, 6, 2, 5]} +{"sent_id": [2, 3, 17, 0, 1, 4]} +{"sent_id": [3, 1, 2, 7, 8, 0]} +{"sent_id": [0, 4, 3, 12, 2, 1]} +{"sent_id": [7, 0, 4, 13, 11, 2]} +{"sent_id": [1, 3, 4, 0, 2, 13]} +{"sent_id": [3, 1, 2, 14, 0, 4]} +{"sent_id": [5, 1, 0, 2, 10, 4]} +{"sent_id": [2, 1, 3, 7, 4, 6]} +{"sent_id": [1, 3, 4, 2, 14, 8]} +{"sent_id": [2, 1, 15, 3, 11, 9]} +{"sent_id": [1, 3, 2, 5, 6, 13]} +{"sent_id": [2, 1, 6, 4, 3, 14]} +{"sent_id": [1, 4, 17, 16, 0, 15]} +{"sent_id": [1, 2, 4, 0, 15, 6]} +{"sent_id": [3, 0, 5, 8, 2, 1]} +{"sent_id": [3, 2, 5, 14, 4, 6]} +{"sent_id": [9, 4, 1, 2, 6, 0]} +{"sent_id": [9, 0, 6, 14, 7, 3]} +{"sent_id": [4, 12, 6, 3, 2, 7]} +{"sent_id": [2, 1, 6, 3, 8, 5]} +{"sent_id": [0, 2, 5, 1, 7, 6]} +{"sent_id": [1, 4, 5, 2, 14, 6]} +{"sent_id": [4, 3, 2, 1, 7, 5]} +{"sent_id": [3, 1, 5, 0, 4, 10]} +{"sent_id": [5, 0, 4, 1, 8, 2]} +{"sent_id": [3, 0, 4, 12, 1, 2]} +{"sent_id": [1, 2, 4, 6, 5, 0]} +{"sent_id": [4, 3, 5, 0, 1, 6]} +{"sent_id": [1, 3, 2, 11, 7, 6]} +{"sent_id": [0, 1, 7, 4, 3, 9]} +{"sent_id": [4, 2, 0, 3, 12, 1]} +{"sent_id": [2, 1, 0, 3, 5, 12]} +{"sent_id": [1, 3, 6, 2, 4, 12]} +{"sent_id": [1, 2, 3, 10, 5, 13]} +{"sent_id": [3, 10, 4, 1, 5, 6]} +{"sent_id": [2, 3, 4, 0, 1, 8]} +{"sent_id": [1, 5, 6, 9, 3, 13]} +{"sent_id": [3, 1, 9, 6, 4, 2]} +{"sent_id": [3, 0, 1, 11, 2, 9]} +{"sent_id": [6, 9, 10, 4, 12, 1]} +{"sent_id": [2, 9, 7, 0, 8, 5]} +{"sent_id": [1, 0, 5, 3, 2, 4]} +{"sent_id": [2, 1, 0, 4, 5, 10]} +{"sent_id": [4, 12, 3, 1, 0, 2]} +{"sent_id": [6, 0, 19, 7, 2, 9]} +{"sent_id": [1, 2, 3, 0, 4, 7]} +{"sent_id": [0, 1, 2, 9, 3, 8]} +{"sent_id": [3, 5, 8, 7, 4, 9]} +{"sent_id": [3, 4, 1, 17, 0, 5]} +{"sent_id": [3, 2, 0, 11, 1, 8]} +{"sent_id": [2, 0, 1, 6, 13, 4]} +{"sent_id": [3, 1, 5, 6, 2, 7]} +{"sent_id": [4, 0, 1, 5, 6, 2]} +{"sent_id": [8, 6, 0, 7, 1, 3]} +{"sent_id": [6, 7, 3, 4, 5, 14]} +{"sent_id": [0, 4, 3, 5, 1, 7]} +{"sent_id": [3, 4, 0, 1, 10, 6]} +{"sent_id": [2, 8, 11, 3, 0, 18]} +{"sent_id": [4, 3, 8, 2, 16, 0]} +{"sent_id": [8, 4, 0, 15, 14, 3]} +{"sent_id": [2, 3, 1, 14, 17, 4]} +{"sent_id": [0, 12, 13, 14, 10, 2]} +{"sent_id": [1, 3, 11, 5, 4, 6]} +{"sent_id": [0, 3, 8, 2, 9, 1]} +{"sent_id": [1, 2, 0, 8, 4, 6]} +{"sent_id": [3, 1, 10, 0, 2, 11]} +{"sent_id": [0, 4, 1, 2, 15, 5]} +{"sent_id": [4, 3, 0, 12, 1, 2]} +{"sent_id": [1, 4, 3, 5, 9, 2]} +{"sent_id": [3, 1, 4, 2, 14, 0]} +{"sent_id": [12, 0, 7, 2, 1, 3]} +{"sent_id": [0, 21, 22, 4, 1, 2]} +{"sent_id": [0, 4, 5, 1, 2, 3]} +{"sent_id": [0, 3, 4, 2, 7, 1]} +{"sent_id": [0, 2, 1, 13, 11, 12]} +{"sent_id": [2, 0, 10, 3, 11, 4]} +{"sent_id": [0, 1, 2, 10, 3, 5]} +{"sent_id": [2, 7, 1, 8, 3, 4]} +{"sent_id": [3, 0, 2, 1, 10, 12]} +{"sent_id": [2, 1, 9, 0, 3, 17]} +{"sent_id": [3, 4, 0, 10, 1, 9]} +{"sent_id": [3, 1, 2, 12, 10, 5]} +{"sent_id": [8, 0, 5, 1, 2, 4]} +{"sent_id": [3, 0, 11, 1, 8, 4]} +{"sent_id": [4, 15, 3, 2, 5, 6]} +{"sent_id": [1, 4, 2, 11, 5, 8]} +{"sent_id": [0, 4, 1, 3, 2, 7]} +{"sent_id": [1, 3, 4, 9, 13, 15]} +{"sent_id": [2, 3, 4, 6, 1, 0]} +{"sent_id": [2, 4, 8, 3, 9, 17]} +{"sent_id": [2, 1, 7, 10, 0, 4]} +{"sent_id": [1, 3, 4, 5, 2, 13]} +{"sent_id": [5, 20, 21, 6, 11, 17]} +{"sent_id": [5, 0, 11, 14, 23, 13]} +{"sent_id": [4, 8, 9, 10, 0, 6]} +{"sent_id": [7, 4, 0, 8, 2, 3]} +{"sent_id": [14, 18, 12, 13, 2, 17]} +{"sent_id": [4, 1, 2, 3, 7, 9]} +{"sent_id": [2, 8, 12, 10, 1, 16]} +{"sent_id": [5, 11, 12, 3, 2, 1]} +{"sent_id": [1, 2, 0, 5, 6, 8]} +{"sent_id": [1, 3, 2, 0, 5, 6]} +{"sent_id": [1, 4, 2, 11, 8, 3]} +{"sent_id": [3, 0, 12, 1, 2, 13]} +{"sent_id": [3, 1, 6, 9, 0, 4]} +{"sent_id": [2, 1, 5, 6, 3, 10]} +{"sent_id": [5, 0, 3, 4, 2, 1]} +{"sent_id": [3, 4, 10, 11, 1, 14]} +{"sent_id": [2, 0, 1, 3, 6, 5]} +{"sent_id": [1, 3, 2, 4, 7, 0]} +{"sent_id": [6, 7, 0, 8, 13, 2]} +{"sent_id": [1, 2, 3, 7, 15, 4]} +{"sent_id": [1, 2, 0, 4, 3, 9]} +{"sent_id": [1, 2, 3, 4, 5, 6]} +{"sent_id": [0, 1, 3, 2, 4, 5]} +{"sent_id": [2, 0, 11, 3, 7, 5]} +{"sent_id": [1, 2, 5, 4, 6, 13]} +{"sent_id": [1, 2, 6, 4, 0, 5]} +{"sent_id": [1, 2, 3, 4, 9, 5]} +{"sent_id": [2, 3, 5, 0, 1, 14]} +{"sent_id": [1, 3, 0, 4, 5, 9]} +{"sent_id": [4, 1, 5, 2, 12, 10]} +{"sent_id": [1, 3, 2, 0, 13, 17]} +{"sent_id": [2, 1, 10, 15, 4, 13]} +{"sent_id": [1, 2, 5, 3, 4, 7]} +{"sent_id": [0, 5, 6, 2, 14, 9]} +{"sent_id": [3, 10, 11, 5, 2, 4]} +{"sent_id": [0, 5, 2, 1, 13, 11]} +{"sent_id": [2, 3, 1, 0, 7, 19]} +{"sent_id": [4, 3, 1, 0, 5, 2]} +{"sent_id": [1, 4, 10, 2, 3, 9]} +{"sent_id": [3, 2, 4, 5, 12, 1]} +{"sent_id": [5, 2, 4, 3, 13, 8]} +{"sent_id": [2, 5, 7, 1, 3, 10]} +{"sent_id": [0, 3, 1, 10, 11, 2]} +{"sent_id": [3, 5, 1, 9, 4, 6]} +{"sent_id": [6, 0, 14, 11, 15, 4]} +{"sent_id": [0, 3, 5, 1, 2, 8]} +{"sent_id": [0, 1, 5, 2, 4, 7]} +{"sent_id": [0, 1, 2, 21, 4, 10]} +{"sent_id": [2, 5, 3, 0, 11, 14]} +{"sent_id": [7, 18, 22, 8, 16, 0]} +{"sent_id": [1, 3, 0, 12, 5, 2]} +{"sent_id": [2, 9, 1, 0, 3, 10]} +{"sent_id": [9, 3, 6, 1, 0, 2]} +{"sent_id": [0, 10, 1, 20, 2, 6]} +{"sent_id": [1, 0, 14, 2, 10, 15]} +{"sent_id": [0, 2, 3, 13, 1, 5]} +{"sent_id": [1, 3, 8, 9, 7, 0]} +{"sent_id": [1, 8, 6, 17, 3, 4]} +{"sent_id": [2, 4, 3, 1, 12, 5]} +{"sent_id": [3, 1, 0, 4, 5, 8]} +{"sent_id": [6, 1, 0, 3, 11, 4]} +{"sent_id": [4, 3, 7, 6, 8, 2]} +{"sent_id": [8, 3, 1, 2, 0, 4]} +{"sent_id": [4, 0, 2, 1, 6, 3]} +{"sent_id": [1, 5, 3, 2, 0, 6]} +{"sent_id": [1, 4, 2, 7, 10, 5]} +{"sent_id": [4, 2, 6, 1, 3, 7]} +{"sent_id": [5, 14, 9, 15, 1, 11]} +{"sent_id": [3, 10, 0, 2, 1, 4]} +{"sent_id": [1, 4, 2, 10, 3, 6]} +{"sent_id": [0, 1, 12, 2, 3, 4]} +{"sent_id": [3, 8, 0, 1, 7, 6]} +{"sent_id": [2, 1, 7, 8, 4, 3]} +{"sent_id": [1, 5, 2, 4, 3, 6]} +{"sent_id": [0, 4, 1, 3, 12, 2]} +{"sent_id": [1, 13, 9, 0, 3, 4]} +{"sent_id": [3, 2, 7, 1, 13, 6]} +{"sent_id": [0, 1, 2, 4, 5, 6]} +{"sent_id": [1, 2, 4, 16, 13, 12]} +{"sent_id": [0, 3, 1, 2, 8, 6]} +{"sent_id": [2, 3, 5, 1, 4, 0]} +{"sent_id": [2, 3, 1, 8, 12, 0]} +{"sent_id": [1, 0, 3, 6, 11, 13]} +{"sent_id": [4, 5, 6, 1, 2, 3]} +{"sent_id": [1, 0, 3, 2, 6, 9]} +{"sent_id": [1, 4, 2, 0, 5, 3]} +{"sent_id": [1, 2, 0, 8, 10, 5]} +{"sent_id": [1, 2, 3, 0, 6, 5]} +{"sent_id": [2, 3, 4, 5, 0, 1]} +{"sent_id": [4, 5, 1, 12, 2, 3]} +{"sent_id": [3, 6, 4, 0, 7, 2]} +{"sent_id": [1, 0, 4, 17, 14, 9]} +{"sent_id": [1, 4, 5, 10, 9, 2]} +{"sent_id": [2, 0, 3, 1, 9, 10]} +{"sent_id": [3, 2, 9, 1, 10, 0]} +{"sent_id": [3, 1, 2, 9, 4, 5]} +{"sent_id": [0, 3, 1, 16, 4, 6]} +{"sent_id": [2, 3, 1, 4, 10, 11]} +{"sent_id": [3, 11, 1, 9, 5, 2]} +{"sent_id": [1, 0, 7, 2, 5, 3]} +{"sent_id": [3, 10, 1, 4, 7, 2]} +{"sent_id": [4, 0, 9, 2, 5, 8]} +{"sent_id": [3, 0, 1, 8, 2, 9]} +{"sent_id": [3, 0, 2, 1, 14, 4]} +{"sent_id": [10, 2, 4, 3, 1, 5]} +{"sent_id": [3, 1, 9, 4, 6, 11]} +{"sent_id": [1, 2, 3, 6, 8, 12]} +{"sent_id": [7, 10, 4, 8, 1, 11]} +{"sent_id": [3, 1, 2, 10, 11, 12]} +{"sent_id": [0, 2, 3, 10, 8, 9]} +{"sent_id": [3, 0, 1, 2, 4, 10]} +{"sent_id": [1, 13, 3, 0, 2, 4]} +{"sent_id": [12, 3, 10, 0, 13, 2]} +{"sent_id": [3, 12, 2, 1, 4, 13]} +{"sent_id": [0, 9, 1, 4, 2, 12]} +{"sent_id": [3, 7, 5, 8, 9, 6]} +{"sent_id": [0, 11, 2, 4, 1, 5]} +{"sent_id": [3, 2, 12, 1, 0, 4]} +{"sent_id": [10, 3, 2, 20, 5, 8]} +{"sent_id": [1, 0, 6, 2, 3, 9]} +{"sent_id": [9, 6, 7, 8, 3, 10]} +{"sent_id": [1, 3, 2, 6, 0, 8]} +{"sent_id": [0, 5, 1, 2, 6, 11]} +{"sent_id": [1, 3, 4, 0, 2, 5]} +{"sent_id": [2, 0, 4, 1, 6, 3]} +{"sent_id": [1, 7, 14, 2, 10, 11]} +{"sent_id": [1, 5, 6, 2, 3, 0]} +{"sent_id": [10, 4, 5, 3, 2, 1]} +{"sent_id": [0, 2, 1, 4, 10, 12]} +{"sent_id": [3, 2, 1, 5, 0, 6]} +{"sent_id": [1, 2, 5, 8, 3, 6]} +{"sent_id": [8, 4, 0, 1, 5, 2]} +{"sent_id": [1, 2, 3, 5, 12, 16]} +{"sent_id": [0, 6, 1, 2, 3, 5]} +{"sent_id": [1, 5, 2, 7, 10, 0]} +{"sent_id": [3, 4, 9, 5, 8, 1]} +{"sent_id": [0, 13, 1, 8, 2, 6]} +{"sent_id": [1, 11, 0, 2, 10, 9]} +{"sent_id": [1, 10, 12, 15, 9, 16]} +{"sent_id": [1, 2, 3, 9, 8, 5]} +{"sent_id": [2, 4, 1, 5, 10, 3]} +{"sent_id": [2, 3, 4, 0, 13, 1]} +{"sent_id": [3, 8, 9, 2, 1, 0]} +{"sent_id": [8, 0, 1, 4, 3, 5]} +{"sent_id": [6, 2, 10, 9, 8, 1]} +{"sent_id": [6, 9, 4, 7, 11, 10]} +{"sent_id": [1, 8, 2, 6, 5, 4]} +{"sent_id": [1, 8, 6, 5, 2, 11]} +{"sent_id": [1, 5, 4, 2, 0, 6]} +{"sent_id": [1, 4, 5, 2, 0, 10]} +{"sent_id": [3, 5, 2, 4, 6, 17]} +{"sent_id": [2, 7, 0, 3, 1, 8]} +{"sent_id": [2, 5, 4, 3, 0, 6]} +{"sent_id": [1, 3, 2, 7, 4, 8]} +{"sent_id": [1, 0, 2, 3, 4, 11]} +{"sent_id": [6, 2, 16, 9, 0, 7]} +{"sent_id": [3, 1, 6, 10, 2, 5]} +{"sent_id": [3, 1, 0, 5, 8, 4]} +{"sent_id": [3, 1, 12, 7, 5, 4]} +{"sent_id": [3, 0, 9, 1, 7, 5]} +{"sent_id": [0, 1, 3, 4, 10, 13]} +{"sent_id": [2, 9, 11, 15, 8, 10]} +{"sent_id": [4, 5, 3, 1, 2, 7]} +{"sent_id": [2, 3, 5, 6, 4, 12]} +{"sent_id": [3, 10, 2, 11, 9, 6]} +{"sent_id": [5, 6, 1, 3, 2, 0]} +{"sent_id": [3, 7, 1, 2, 5, 4]} +{"sent_id": [0, 1, 10, 11, 9, 5]} +{"sent_id": [2, 0, 3, 1, 5, 4]} +{"sent_id": [1, 2, 3, 7, 4, 9]} +{"sent_id": [1, 2, 4, 9, 10, 5]} +{"sent_id": [2, 3, 6, 4, 5, 0]} +{"sent_id": [9, 1, 2, 0, 10, 3]} +{"sent_id": [3, 10, 0, 4, 6, 11]} +{"sent_id": [1, 4, 13, 0, 2, 8]} +{"sent_id": [1, 7, 3, 2, 9, 12]} +{"sent_id": [1, 2, 17, 3, 5, 16]} +{"sent_id": [4, 3, 8, 7, 1, 0]} +{"sent_id": [2, 3, 4, 11, 7, 6]} +{"sent_id": [2, 1, 3, 5, 6, 0]} +{"sent_id": [2, 13, 8, 15, 18, 1]} +{"sent_id": [3, 4, 5, 9, 1, 6]} +{"sent_id": [19, 3, 2, 17, 4, 1]} +{"sent_id": [2, 0, 1, 8, 9, 4]} +{"sent_id": [3, 4, 5, 9, 7, 6]} +{"sent_id": [3, 2, 4, 1, 0, 5]} +{"sent_id": [3, 2, 4, 8, 1, 13]} +{"sent_id": [1, 3, 0, 4, 7, 11]} +{"sent_id": [10, 8, 0, 1, 7, 5]} +{"sent_id": [1, 9, 4, 2, 8, 3]} +{"sent_id": [1, 3, 11, 2, 0, 4]} +{"sent_id": [2, 4, 3, 5, 9, 10]} +{"sent_id": [3, 0, 4, 1, 9, 2]} +{"sent_id": [1, 4, 14, 12, 5, 3]} +{"sent_id": [2, 7, 1, 0, 5, 3]} +{"sent_id": [0, 1, 4, 2, 3, 6]} +{"sent_id": [4, 14, 3, 15, 5, 0]} +{"sent_id": [1, 2, 3, 4, 8, 5]} +{"sent_id": [1, 3, 0, 8, 4, 2]} +{"sent_id": [3, 1, 4, 0, 8, 2]} +{"sent_id": [2, 0, 1, 19, 4, 3]} +{"sent_id": [4, 1, 2, 13, 0, 5]} +{"sent_id": [2, 8, 3, 9, 4, 7]} +{"sent_id": [3, 4, 2, 0, 9, 8]} +{"sent_id": [1, 10, 6, 4, 0, 2]} +{"sent_id": [3, 2, 1, 0, 4, 5]} +{"sent_id": [1, 2, 0, 3, 5, 7]} +{"sent_id": [3, 2, 5, 4, 6, 8]} +{"sent_id": [2, 1, 4, 3, 5, 0]} +{"sent_id": [2, 6, 1, 4, 7, 0]} +{"sent_id": [1, 2, 3, 9, 0, 6]} +{"sent_id": [0, 10, 2, 4, 18, 5]} +{"sent_id": [0, 5, 1, 8, 3, 4]} +{"sent_id": [1, 10, 5, 2, 4, 3]} +{"sent_id": [3, 7, 14, 2, 1, 11]} +{"sent_id": [6, 7, 21, 0, 11, 14]} +{"sent_id": [8, 2, 6, 1, 0, 4]} +{"sent_id": [0, 3, 2, 1, 8, 10]} +{"sent_id": [3, 1, 4, 6, 2, 0]} +{"sent_id": [1, 2, 4, 8, 10, 7]} +{"sent_id": [1, 15, 3, 0, 2, 5]} +{"sent_id": [3, 4, 0, 1, 7, 2]} +{"sent_id": [4, 5, 6, 2, 0, 1]} +{"sent_id": [1, 8, 3, 0, 13, 15]} +{"sent_id": [5, 4, 7, 15, 6, 3]} +{"sent_id": [3, 1, 0, 6, 2, 11]} +{"sent_id": [2, 3, 6, 4, 9, 5]} +{"sent_id": [1, 2, 3, 6, 8, 12]} +{"sent_id": [3, 1, 6, 4, 5, 0]} +{"sent_id": [4, 0, 6, 2, 1, 5]} +{"sent_id": [0, 9, 1, 2, 4, 6]} +{"sent_id": [3, 11, 1, 8, 2, 5]} +{"sent_id": [7, 3, 0, 2, 1, 12]} +{"sent_id": [2, 1, 3, 13, 5, 7]} +{"sent_id": [2, 3, 8, 4, 5, 6]} +{"sent_id": [5, 1, 2, 6, 0, 3]} +{"sent_id": [1, 7, 4, 6, 0, 2]} +{"sent_id": [1, 7, 4, 8, 3, 10]} +{"sent_id": [5, 1, 6, 3, 4, 2]} +{"sent_id": [9, 4, 5, 2, 10, 14]} +{"sent_id": [3, 2, 1, 16, 8, 4]} +{"sent_id": [1, 2, 3, 7, 6, 4]} +{"sent_id": [2, 1, 4, 3, 7, 6]} +{"sent_id": [3, 1, 2, 5, 15, 9]} +{"sent_id": [3, 0, 4, 1, 5, 2]} +{"sent_id": [1, 2, 5, 0, 7, 4]} +{"sent_id": [1, 0, 8, 3, 4, 2]} +{"sent_id": [2, 1, 0, 9, 13, 5]} +{"sent_id": [1, 8, 4, 2, 11, 9]} +{"sent_id": [0, 4, 1, 2, 13, 3]} +{"sent_id": [0, 2, 1, 4, 9, 3]} +{"sent_id": [3, 9, 1, 0, 2, 10]} +{"sent_id": [1, 3, 2, 4, 0, 9]} +{"sent_id": [1, 3, 2, 13, 8, 0]} +{"sent_id": [3, 2, 12, 5, 1, 9]} +{"sent_id": [8, 1, 0, 4, 2, 5]} +{"sent_id": [3, 2, 12, 11, 4, 1]} +{"sent_id": [3, 0, 11, 2, 1, 9]} +{"sent_id": [0, 1, 2, 4, 5, 10]} +{"sent_id": [1, 0, 7, 2, 6, 4]} +{"sent_id": [1, 4, 7, 8, 6, 5]} +{"sent_id": [1, 2, 6, 3, 5, 7]} +{"sent_id": [1, 3, 7, 2, 0, 4]} +{"sent_id": [1, 3, 6, 2, 7, 5]} +{"sent_id": [2, 1, 4, 5, 12, 8]} +{"sent_id": [1, 0, 3, 2, 5, 6]} +{"sent_id": [11, 3, 9, 14, 1, 16]} +{"sent_id": [1, 0, 4, 6, 3, 5]} +{"sent_id": [1, 2, 4, 3, 7, 5]} +{"sent_id": [5, 10, 16, 15, 12, 11]} +{"sent_id": [0, 1, 5, 4, 20, 2]} +{"sent_id": [4, 10, 3, 8, 12, 7]} +{"sent_id": [0, 14, 4, 1, 6, 3]} +{"sent_id": [2, 1, 5, 11, 0, 9]} +{"sent_id": [3, 1, 4, 5, 6, 2]} +{"sent_id": [5, 1, 2, 12, 7, 0]} +{"sent_id": [6, 0, 2, 1, 10, 4]} +{"sent_id": [13, 0, 5, 1, 14, 6]} +{"sent_id": [7, 4, 3, 2, 15, 5]} +{"sent_id": [1, 0, 9, 2, 4, 3]} +{"sent_id": [4, 17, 7, 2, 11, 3]} +{"sent_id": [2, 18, 0, 19, 3, 4]} +{"sent_id": [2, 4, 5, 1, 6, 10]} +{"sent_id": [2, 1, 4, 3, 18, 6]} +{"sent_id": [2, 1, 0]} +{"sent_id": [2, 6, 9, 5, 7, 1]} +{"sent_id": [2, 1, 4, 3, 12, 0]} +{"sent_id": [0, 7, 19, 10, 2, 5]} +{"sent_id": [1, 3, 0, 2, 4, 7]} +{"sent_id": [2, 7, 5, 1, 0, 10]} +{"sent_id": [2, 0, 3, 13, 12, 1]} +{"sent_id": [1, 6, 0, 8, 2, 4]} +{"sent_id": [2, 3, 7, 1, 12, 4]} +{"sent_id": [1, 2, 3, 6, 0, 5]} +{"sent_id": [2, 4, 5, 7, 12, 1]} +{"sent_id": [16, 0, 12, 1, 6, 2]} +{"sent_id": [4, 3, 5, 6, 10, 8]} +{"sent_id": [1, 0, 3, 8, 5, 6]} +{"sent_id": [4, 5, 3, 1, 2, 13]} +{"sent_id": [1, 13, 17, 0, 2, 7]} +{"sent_id": [3, 12, 4, 1, 8, 9]} +{"sent_id": [4, 1, 5, 3, 0, 8]} +{"sent_id": [4, 1, 6, 2, 14, 15]} +{"sent_id": [2, 1, 5, 0, 6, 3]} +{"sent_id": [1, 5, 2, 3, 18, 17]} +{"sent_id": [1, 6, 14, 3, 5, 2]} +{"sent_id": [0, 1, 10, 7, 8, 2]} +{"sent_id": [4, 0, 10, 8, 2, 16]} +{"sent_id": [7, 2, 5, 9, 8, 15]} +{"sent_id": [0, 2, 3, 4, 17, 6]} +{"sent_id": [1, 5, 6, 4, 2, 12]} +{"sent_id": [0, 5, 3, 4, 2, 1]} +{"sent_id": [4, 11, 6, 3, 7, 16]} +{"sent_id": [4, 10, 5, 2, 11, 3]} +{"sent_id": [1, 2, 4, 5, 8, 12]} +{"sent_id": [8, 3, 0, 4, 1, 11]} +{"sent_id": [2, 3, 4, 1, 0, 5]} +{"sent_id": [2, 1, 0, 5, 6, 12]} +{"sent_id": [3, 14, 4, 7, 2, 10]} +{"sent_id": [4, 5, 0, 19, 21, 1]} +{"sent_id": [3, 1, 2, 4, 5, 8]} +{"sent_id": [3, 12, 4, 14, 5, 19]} +{"sent_id": [1, 2, 3, 6, 7, 0]} +{"sent_id": [1, 2, 3, 4, 6, 13]} +{"sent_id": [3, 1, 6, 4, 2, 7]} +{"sent_id": [2, 1, 6, 7, 0, 8]} +{"sent_id": [3, 6, 5, 9, 2, 0]} +{"sent_id": [11, 2, 3, 1, 5, 4]} +{"sent_id": [1, 2, 4, 3, 5, 8]} +{"sent_id": [12, 4, 0, 3, 2, 1]} +{"sent_id": [7, 2, 6, 1, 9, 0]} +{"sent_id": [0, 3, 10, 11, 2, 1]} +{"sent_id": [3, 2, 0, 4, 1, 10]} +{"sent_id": [1, 4, 0, 8, 7, 2]} +{"sent_id": [1, 4, 6, 3, 0, 2]} +{"sent_id": [1, 2, 0, 3, 11, 8]} +{"sent_id": [1, 0, 3, 7, 9, 2]} +{"sent_id": [6, 0, 2, 1, 3, 4]} +{"sent_id": [0, 5, 1, 8, 2, 3]} +{"sent_id": [4, 0, 10, 5, 3, 6]} +{"sent_id": [2, 1, 8, 0, 21, 4]} +{"sent_id": [0, 1, 2]} +{"sent_id": [15, 3, 1, 8, 7, 4]} +{"sent_id": [1, 6, 4, 2, 13, 5]} +{"sent_id": [4, 2, 14, 1, 6, 0]} +{"sent_id": [0, 1, 3, 2, 9, 4]} +{"sent_id": [3, 1, 2, 9, 4, 11]} +{"sent_id": [2, 1, 0, 4, 9, 5]} +{"sent_id": [5, 2, 4, 7, 11, 1]} +{"sent_id": [1, 12, 4, 5, 0, 16]} +{"sent_id": [8, 3, 1, 2, 0, 7]} +{"sent_id": [0, 4, 2, 3, 13, 1]} +{"sent_id": [3, 4, 10, 1, 0, 13]} +{"sent_id": [3, 1, 4, 0, 11, 10]} +{"sent_id": [3, 2, 4, 1, 5, 9]} +{"sent_id": [4, 2, 3, 5, 1, 0]} +{"sent_id": [1, 9, 10, 13, 0, 16]} +{"sent_id": [4, 3, 5, 1, 7, 6]} +{"sent_id": [1, 4, 5, 3, 2, 9]} +{"sent_id": [2, 1, 0, 6, 5, 4]} +{"sent_id": [0, 2, 4, 3, 6, 1]} +{"sent_id": [0, 2, 3, 1, 12, 5]} +{"sent_id": [1, 3, 8, 2, 6, 7]} +{"sent_id": [9, 16, 4, 10, 2, 3]} +{"sent_id": [1, 3, 4, 2, 0, 8]} +{"sent_id": [1, 2, 5, 0, 3, 9]} +{"sent_id": [1, 11, 4, 3, 2, 13]} +{"sent_id": [1, 4, 2, 0, 3, 5]} +{"sent_id": [1, 2, 3, 12, 13, 8]} +{"sent_id": [4, 3, 0, 1, 8, 11]} +{"sent_id": [4, 8, 2, 11, 1, 10]} +{"sent_id": [0, 3, 4, 11, 2, 1]} +{"sent_id": [0, 5, 3, 2, 1, 6]} +{"sent_id": [3, 12, 1, 14, 2, 13]} +{"sent_id": [1, 2, 3, 6, 5, 7]} +{"sent_id": [1, 2, 8, 4, 0, 10]} +{"sent_id": [4, 3, 2, 0, 1, 8]} +{"sent_id": [3, 4, 0, 5, 14, 2]} +{"sent_id": [2, 3, 0, 8, 4, 7]} +{"sent_id": [2, 3, 1, 0, 8, 12]} +{"sent_id": [2, 1, 4, 0, 5, 8]} +{"sent_id": [3, 0, 4, 1, 5, 2]} +{"sent_id": [2, 3, 4, 5, 8, 0]} +{"sent_id": [3, 9, 0, 2, 10, 8]} +{"sent_id": [1, 7, 8, 0, 3, 6]} +{"sent_id": [3, 0, 2, 6, 9, 10]} +{"sent_id": [5, 4, 8, 12, 0, 6]} +{"sent_id": [1, 10, 2, 6, 5, 4]} +{"sent_id": [3, 11, 4, 0, 10, 1]} +{"sent_id": [1, 2, 4, 12, 0, 3]} +{"sent_id": [1, 2, 4, 7, 0, 11]} +{"sent_id": [0, 2, 3, 19, 4, 7]} +{"sent_id": [8, 5, 0, 4, 15, 1]} +{"sent_id": [0, 3, 2, 5, 1, 6]} +{"sent_id": [1, 3, 2, 7, 8, 4]} +{"sent_id": [0, 2, 4, 3, 13, 6]} +{"sent_id": [0, 12, 5, 2, 4, 8]} +{"sent_id": [3, 2, 0, 9, 1, 4]} +{"sent_id": [3, 7, 2, 1, 0, 6]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [4, 1, 0, 2, 11, 13]} +{"sent_id": [1, 5, 2, 10, 3, 0]} +{"sent_id": [1, 5, 3, 12, 8, 9]} +{"sent_id": [1, 3, 12, 4, 2, 5]} +{"sent_id": [2, 4, 1, 0, 10, 6]} +{"sent_id": [1, 2, 5, 4, 0, 14]} +{"sent_id": [1, 2, 3, 11, 8, 0]} +{"sent_id": [0, 1, 2, 11, 3, 5]} +{"sent_id": [0, 13, 1, 4, 3, 14]} +{"sent_id": [2, 4, 5, 8, 0, 12]} +{"sent_id": [1, 2, 7, 3, 5, 4]} +{"sent_id": [1, 2, 0, 7, 5, 6]} +{"sent_id": [2, 1, 9, 10, 3, 11]} +{"sent_id": [6, 5, 3, 0, 7, 8]} +{"sent_id": [1, 9, 6, 0, 18, 4]} +{"sent_id": [1, 8, 0, 10, 7, 13]} +{"sent_id": [4, 3, 1, 2, 5, 0]} +{"sent_id": [3, 1, 2, 9, 5, 4]} +{"sent_id": [2, 4, 7, 3, 5, 10]} +{"sent_id": [3, 1, 2, 11, 10, 7]} +{"sent_id": [4, 1, 5, 3, 0, 11]} +{"sent_id": [1, 0, 2, 8, 6, 5]} +{"sent_id": [3, 5, 1, 6, 15, 17]} +{"sent_id": [1, 3, 0, 2, 12, 5]} +{"sent_id": [3, 4, 0, 12, 1, 6]} +{"sent_id": [3, 1, 6, 8, 11, 2]} +{"sent_id": [2, 1, 4, 6, 10, 3]} +{"sent_id": [3, 14, 13, 15, 2, 7]} +{"sent_id": [0, 3, 2, 6, 1, 7]} +{"sent_id": [1, 3, 4, 17, 0, 12]} +{"sent_id": [3, 1, 5, 4, 12, 0]} +{"sent_id": [0, 4, 1, 12, 14, 2]} +{"sent_id": [5, 2, 4, 0, 1, 7]} +{"sent_id": [1, 4, 2, 3, 0, 8]} +{"sent_id": [3, 8, 5, 1, 9, 12]} +{"sent_id": [8, 14, 2, 15, 19, 16]} +{"sent_id": [3, 1, 8, 2, 6, 4]} +{"sent_id": [4, 1, 16, 0, 8, 3]} +{"sent_id": [3, 5, 4, 6, 11, 10]} +{"sent_id": [2, 3, 1, 13, 14, 15]} +{"sent_id": [0, 1, 3, 2, 12, 9]} +{"sent_id": [1, 2, 7, 15, 3, 13]} +{"sent_id": [1, 2, 13, 0, 5, 3]} +{"sent_id": [0, 3, 1, 4, 15, 2]} +{"sent_id": [1, 3, 2, 6, 4, 7]} +{"sent_id": [1, 2, 3, 5, 10, 13]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [0, 9, 4, 3, 1, 2]} +{"sent_id": [1, 4, 3, 9, 2, 13]} +{"sent_id": [2, 5, 9, 1, 6, 10]} +{"sent_id": [1, 0, 2, 10, 3, 15]} +{"sent_id": [0, 1, 3, 2, 4, 5]} +{"sent_id": [6, 8, 4, 5, 0, 9]} +{"sent_id": [3, 8, 1, 11, 10, 7]} +{"sent_id": [3, 9, 4, 1, 0, 17]} +{"sent_id": [3, 8, 5, 2, 4, 6]} +{"sent_id": [2, 4, 3, 14, 5, 6]} +{"sent_id": [4, 1, 2, 6, 3, 5]} +{"sent_id": [1, 2, 7, 6, 8, 5]} +{"sent_id": [9, 2, 3, 5, 4, 7]} +{"sent_id": [1, 3, 2, 5, 8, 6]} +{"sent_id": [1, 2, 3, 0, 5, 7]} +{"sent_id": [3, 1, 4, 2, 5, 12]} +{"sent_id": [2, 4, 7, 5, 0, 6]} +{"sent_id": [3, 0, 2, 1, 8, 4]} +{"sent_id": [3, 4, 1, 0, 16, 2]} +{"sent_id": [3, 5, 2, 8, 1, 16]} +{"sent_id": [0, 4, 3, 5, 1, 2]} +{"sent_id": [2, 4, 9, 1, 6, 11]} +{"sent_id": [0, 5, 13, 1, 11, 12]} +{"sent_id": [12, 4, 13, 3, 5, 7]} +{"sent_id": [9, 7, 1, 10, 3, 2]} +{"sent_id": [1, 3, 9, 2, 7, 0]} +{"sent_id": [3, 0, 1, 5, 2, 4]} +{"sent_id": [2, 1, 5, 6, 4, 9]} +{"sent_id": [1, 12, 0, 13, 8, 5]} +{"sent_id": [1, 8, 17, 18, 0, 4]} +{"sent_id": [1, 3, 8, 0, 4, 15]} +{"sent_id": [3, 2, 4, 14, 8, 9]} +{"sent_id": [2, 6, 1, 4, 5, 11]} +{"sent_id": [1, 0, 2, 5, 3, 10]} +{"sent_id": [2, 0, 11, 1, 4, 3]} +{"sent_id": [0, 18, 12, 13, 11, 16]} +{"sent_id": [15, 16, 0, 1, 17, 2]} +{"sent_id": [2, 3, 1, 0, 5, 7]} +{"sent_id": [1, 2, 10, 0, 7, 5]} +{"sent_id": [2, 3, 4, 5, 0, 8]} +{"sent_id": [1, 4, 2, 5, 9, 6]} +{"sent_id": [6, 9, 7, 19, 14, 16]} +{"sent_id": [3, 0, 4, 10, 11, 9]} +{"sent_id": [3, 14, 0, 2, 13, 4]} +{"sent_id": [3, 1, 2, 0, 5, 4]} +{"sent_id": [3, 11, 10, 2, 4, 5]} +{"sent_id": [0, 12, 2, 3, 1, 4]} +{"sent_id": [11, 2, 3, 1, 8, 13]} +{"sent_id": [1, 14, 2, 3, 4, 12]} +{"sent_id": [1, 2, 10, 8, 9, 0]} +{"sent_id": [1, 4, 3, 0, 2, 5]} +{"sent_id": [3, 6, 12, 2, 13, 7]} +{"sent_id": [0, 1, 7, 2, 4, 5]} +{"sent_id": [1, 5, 2, 3, 13, 4]} +{"sent_id": [1, 2, 0, 4, 18, 5]} +{"sent_id": [3, 1, 4, 2, 11, 6]} +{"sent_id": [1, 2, 3, 5, 7, 0]} +{"sent_id": [1, 2, 4, 0, 5, 7]} +{"sent_id": [1, 2, 25, 11, 6, 5]} +{"sent_id": [0, 2, 9, 13, 7, 15]} +{"sent_id": [1, 11, 2, 9, 6, 3]} +{"sent_id": [0, 5, 4, 3, 1, 6]} +{"sent_id": [2, 1, 11, 4, 3, 14]} +{"sent_id": [0, 2, 8, 4, 3, 1]} +{"sent_id": [0, 3, 1, 6, 5, 10]} +{"sent_id": [1, 4, 0, 8, 14, 2]} +{"sent_id": [0, 4, 3, 1, 2, 5]} +{"sent_id": [0, 3, 1, 12, 4, 2]} +{"sent_id": [7, 2, 3, 1, 6, 5]} +{"sent_id": [2, 3, 0, 1, 4, 5]} +{"sent_id": [1, 8, 6, 7, 16, 0]} +{"sent_id": [1, 2, 6, 7, 0, 4]} +{"sent_id": [2, 3, 0, 8, 1, 5]} +{"sent_id": [3, 1, 0, 5, 4, 6]} +{"sent_id": [3, 1, 10, 0, 18, 4]} +{"sent_id": [1, 6, 15, 2, 3, 5]} +{"sent_id": [6, 10, 0, 1, 7, 4]} +{"sent_id": [0, 5, 1, 13, 4, 3]} +{"sent_id": [6, 1, 2, 16, 13, 3]} +{"sent_id": [5, 3, 9, 6, 13, 2]} +{"sent_id": [1, 2, 11, 3, 6, 7]} +{"sent_id": [3, 1, 10, 2, 0, 4]} +{"sent_id": [2, 4, 10, 5, 3, 0]} +{"sent_id": [2, 0, 9, 1, 4, 3]} +{"sent_id": [1, 0, 14, 4, 13, 12]} +{"sent_id": [2, 3, 8, 11, 7, 6]} +{"sent_id": [3, 10, 4, 1, 0, 2]} +{"sent_id": [4, 1, 12, 6, 3, 0]} +{"sent_id": [4, 2, 12, 11, 7, 3]} +{"sent_id": [3, 0, 2, 1, 19, 14]} +{"sent_id": [1, 3, 0, 7, 5, 6]} +{"sent_id": [3, 10, 5, 2, 4, 11]} +{"sent_id": [1, 13, 8, 10, 6, 19]} +{"sent_id": [8, 4, 0, 1, 2, 3]} +{"sent_id": [3, 6, 2, 5, 1, 8]} +{"sent_id": [1, 4, 2, 3, 6, 8]} +{"sent_id": [3, 5, 2, 1, 6, 4]} +{"sent_id": [1, 2, 6, 8, 9, 5]} +{"sent_id": [1, 4, 3, 2, 0, 14]} +{"sent_id": [7, 11, 10, 12, 1, 0]} +{"sent_id": [1, 11, 0, 6, 3, 2]} +{"sent_id": [1, 2, 6, 7, 12, 9]} +{"sent_id": [3, 2, 1, 5, 12, 4]} +{"sent_id": [0, 3, 1, 4, 10, 2]} +{"sent_id": [5, 1, 10, 6, 8, 3]} +{"sent_id": [4, 2, 6, 3, 9, 1]} +{"sent_id": [3, 0, 1, 18, 2, 17]} +{"sent_id": [1, 3, 4, 7, 2, 13]} +{"sent_id": [3, 4, 8, 9, 5, 1]} +{"sent_id": [1, 0, 2, 5, 6, 4]} +{"sent_id": [1, 2, 7, 3, 8, 5]} +{"sent_id": [3, 0, 1, 4, 2, 11]} +{"sent_id": [0, 1, 3, 5, 2, 4]} +{"sent_id": [1, 0, 3, 2, 5, 11]} +{"sent_id": [7, 5, 8, 6, 3, 4]} +{"sent_id": [4, 5, 19, 6, 12, 21]} +{"sent_id": [1, 2, 3, 6, 0, 7]} +{"sent_id": [2, 8, 4, 17, 5, 16]} +{"sent_id": [2, 1, 0, 3, 4, 5]} +{"sent_id": [3, 1, 2, 8, 6, 7]} +{"sent_id": [1, 0, 6, 4, 3, 9]} +{"sent_id": [2, 6, 5, 7, 0, 11]} +{"sent_id": [3, 0, 1, 7, 2, 6]} +{"sent_id": [0, 1, 4, 2, 20, 3]} +{"sent_id": [3, 4, 0, 6, 1, 5]} +{"sent_id": [12, 1, 0, 7, 13, 9]} +{"sent_id": [3, 0, 4, 2, 1, 9]} +{"sent_id": [9, 10, 3, 0, 4, 1]} +{"sent_id": [0, 3, 4, 1, 2, 8]} +{"sent_id": [0, 1, 3, 4, 2, 7]} +{"sent_id": [1, 9, 5, 10, 4, 6]} +{"sent_id": [2, 1, 8, 0, 7, 9]} +{"sent_id": [1, 2, 4, 7, 0, 3]} +{"sent_id": [5, 1, 2, 3, 4, 10]} +{"sent_id": [1, 2, 5, 3, 16, 6]} +{"sent_id": [5, 10, 4, 9, 6, 8]} +{"sent_id": [1, 2, 9, 3, 13, 0]} +{"sent_id": [8, 4, 3, 2, 6, 11]} +{"sent_id": [1, 10, 3, 2, 4, 6]} +{"sent_id": [1, 3, 10, 2, 13, 0]} +{"sent_id": [1, 2, 5, 4, 7, 3]} +{"sent_id": [0, 13, 1, 3, 5, 4]} +{"sent_id": [1, 7, 0, 3, 6, 4]} +{"sent_id": [6, 7, 1, 0, 8, 4]} +{"sent_id": [1, 11, 0, 3, 10, 2]} +{"sent_id": [2, 4, 0, 3, 17, 1]} +{"sent_id": [4, 16, 0, 15, 2, 9]} +{"sent_id": [2, 3, 1, 4, 0, 7]} +{"sent_id": [1, 5, 2, 4, 13, 0]} +{"sent_id": [3, 1, 2, 8, 6, 0]} +{"sent_id": [2, 3, 18, 4, 8, 6]} +{"sent_id": [11, 0, 3, 1, 15, 12]} +{"sent_id": [1, 3, 4, 10, 2, 6]} +{"sent_id": [1, 4, 3, 2, 14, 0]} +{"sent_id": [3, 1, 5, 15, 19, 8]} +{"sent_id": [0, 2, 5, 3, 4, 14]} +{"sent_id": [3, 0, 10, 2, 1, 6]} +{"sent_id": [3, 12, 13, 2, 14, 1]} +{"sent_id": [13, 4, 5, 14, 2, 15]} +{"sent_id": [2, 0, 14, 3, 7, 12]} +{"sent_id": [0, 2, 1, 13, 14, 6]} +{"sent_id": [5, 2, 3, 1, 4, 8]} +{"sent_id": [3, 1, 4, 8, 5, 2]} +{"sent_id": [2, 4, 3, 1, 7, 5]} +{"sent_id": [0, 1, 2, 3, 4, 10]} +{"sent_id": [3, 2, 1, 9, 11, 10]} +{"sent_id": [3, 11, 0, 10, 17, 4]} +{"sent_id": [4, 3, 7, 0, 6, 2]} +{"sent_id": [2, 1, 0, 12, 4, 5]} +{"sent_id": [3, 1, 11, 0, 2, 12]} +{"sent_id": [1, 4, 3, 11, 10, 19]} +{"sent_id": [1, 3, 6, 2, 13, 7]} +{"sent_id": [1, 7, 3, 0, 2, 8]} +{"sent_id": [4, 2, 5, 14, 3, 0]} +{"sent_id": [4, 3, 2, 0, 5, 1]} +{"sent_id": [0, 8, 3, 4, 1, 5]} +{"sent_id": [1, 0, 4, 2, 5, 15]} +{"sent_id": [1, 12, 4, 2, 13, 3]} +{"sent_id": [4, 9, 2, 5, 7, 15]} +{"sent_id": [1, 2, 10, 9, 7, 15]} +{"sent_id": [4, 5, 6, 1, 2, 16]} +{"sent_id": [1, 3, 10, 2, 8, 14]} +{"sent_id": [1, 5, 2, 6, 11, 7]} +{"sent_id": [2, 1, 0, 15, 7, 4]} +{"sent_id": [5, 6, 1, 13, 0, 9]} +{"sent_id": [3, 13, 4, 0, 1, 2]} +{"sent_id": [2, 1, 0, 3, 11, 10]} +{"sent_id": [3, 2, 0, 1, 8, 12]} +{"sent_id": [1, 2, 5, 15, 4, 9]} +{"sent_id": [2, 3, 1, 4, 12, 13]} +{"sent_id": [3, 1, 0, 5, 10, 2]} +{"sent_id": [0, 3, 1, 9, 4, 2]} +{"sent_id": [7, 2, 3, 4, 6, 5]} +{"sent_id": [2, 6, 0, 1, 5, 13]} +{"sent_id": [3, 1, 13, 4, 0, 2]} +{"sent_id": [1, 2, 3, 0, 6, 4]} +{"sent_id": [2, 8, 4, 3, 1, 5]} +{"sent_id": [3, 4, 0, 1, 6, 5]} +{"sent_id": [7, 4, 13, 2, 9, 14]} +{"sent_id": [2, 0, 3, 1, 12, 11]} +{"sent_id": [1, 7, 8, 3, 6, 9]} +{"sent_id": [8, 1, 0, 2, 10, 14]} +{"sent_id": [2, 0, 1, 10, 12, 11]} +{"sent_id": [3, 4, 1, 11, 5, 10]} +{"sent_id": [1, 4, 5, 3, 14, 2]} +{"sent_id": [1, 5, 2, 3, 12, 4]} +{"sent_id": [1, 5, 0, 2, 4, 16]} +{"sent_id": [1, 5, 4, 3, 0, 10]} +{"sent_id": [0, 5, 1, 3, 4, 2]} +{"sent_id": [8, 3, 2, 4, 5, 6]} +{"sent_id": [2, 3, 4, 8, 15, 7]} +{"sent_id": [1, 4, 2, 3, 16, 5]} +{"sent_id": [2, 0, 3, 4, 5, 6]} +{"sent_id": [3, 8, 2, 1, 12, 13]} +{"sent_id": [2, 5, 4, 1, 6, 10]} +{"sent_id": [2, 4, 3, 11, 0, 1]} +{"sent_id": [0, 1, 3, 5, 2, 4]} +{"sent_id": [1, 2, 5, 3, 0, 4]} +{"sent_id": [14, 3, 1, 0, 6, 5]} +{"sent_id": [1, 2, 3, 9, 0, 4]} +{"sent_id": [3, 8, 1, 0, 2, 9]} +{"sent_id": [0, 4, 8, 2, 3, 5]} +{"sent_id": [2, 4, 1, 5, 6, 0]} +{"sent_id": [0, 1, 7, 2, 3, 4]} +{"sent_id": [1, 2, 4, 3, 7, 5]} +{"sent_id": [3, 0, 1, 11, 4, 2]} +{"sent_id": [9, 1, 15, 2, 0, 6]} +{"sent_id": [5, 4, 3, 6, 2, 8]} +{"sent_id": [3, 4, 5, 7, 11, 8]} +{"sent_id": [3, 5, 1, 4, 0, 2]} +{"sent_id": [5, 4, 2, 3, 15, 18]} +{"sent_id": [3, 5, 0, 2, 4, 12]} +{"sent_id": [3, 2, 1, 4, 5, 0]} +{"sent_id": [2, 12, 4, 13, 5, 3]} +{"sent_id": [1, 3, 4, 2, 12, 5]} +{"sent_id": [2, 0, 3, 4, 5, 17]} +{"sent_id": [3, 1, 0, 8, 4, 2]} +{"sent_id": [5, 1, 3, 6, 0, 7]} +{"sent_id": [1, 2, 3, 4, 13, 7]} +{"sent_id": [0, 1, 9, 4, 3, 8]} +{"sent_id": [2, 0, 5, 6, 3, 1]} +{"sent_id": [2, 1, 13, 3, 4, 14]} +{"sent_id": [0, 2, 3, 6, 7, 11]} +{"sent_id": [4, 3, 1, 2, 14, 5]} +{"sent_id": [2, 6, 10, 8, 4, 1]} +{"sent_id": [1, 0, 7, 3, 2, 5]} +{"sent_id": [2, 3, 4, 1, 5, 11]} +{"sent_id": [1, 4, 2, 19, 3, 5]} +{"sent_id": [0, 3, 1, 4, 2, 5]} +{"sent_id": [2, 3, 1, 0, 7, 6]} +{"sent_id": [1, 0, 3, 4, 5, 9]} +{"sent_id": [1, 2, 5, 8, 3, 0]} +{"sent_id": [1, 2, 7, 4, 0, 6]} +{"sent_id": [2, 0, 7, 8, 5, 1]} +{"sent_id": [6, 23, 8, 16, 5, 14]} +{"sent_id": [9, 5, 6, 11, 7, 0]} +{"sent_id": [2, 0, 10, 7, 3, 4]} +{"sent_id": [2, 3, 4, 5, 0, 11]} +{"sent_id": [1, 3, 2, 4, 0, 6]} +{"sent_id": [2, 5, 4, 1, 6, 3]} +{"sent_id": [9, 4, 3, 14, 2, 13]} +{"sent_id": [6, 5, 2, 1, 9, 4]} +{"sent_id": [6, 15, 5, 2, 17, 18]} +{"sent_id": [4, 1, 3, 14, 2, 0]} +{"sent_id": [1, 3, 4, 6, 2, 5]} +{"sent_id": [9, 0, 1, 4, 2, 10]} +{"sent_id": [1, 2, 5, 6, 12, 17]} +{"sent_id": [4, 3, 2, 12, 1, 0]} +{"sent_id": [3, 0, 1, 5, 6, 4]} +{"sent_id": [0, 4, 1, 3, 2, 10]} +{"sent_id": [2, 1, 6, 5, 7, 0]} +{"sent_id": [3, 9, 1, 0, 4, 2]} +{"sent_id": [1, 14, 4, 3, 2, 0]} +{"sent_id": [3, 4, 1, 5, 2, 11]} +{"sent_id": [2, 3, 1, 0, 13, 9]} +{"sent_id": [1, 9, 6, 0, 11, 10]} +{"sent_id": [10, 9, 1, 12, 7, 6]} +{"sent_id": [1, 3, 10, 6, 2, 0]} +{"sent_id": [1, 2, 8, 3, 9, 13]} +{"sent_id": [8, 7, 12, 9, 13, 20]} +{"sent_id": [14, 4, 0, 3, 5, 8]} +{"sent_id": [3, 11, 1, 7, 6, 2]} +{"sent_id": [1, 2, 15, 4, 14, 13]} +{"sent_id": [3, 5, 4, 6, 16, 7]} +{"sent_id": [4, 1, 5, 0, 3, 11]} +{"sent_id": [1, 2, 0, 5, 16, 6]} +{"sent_id": [1, 2, 8, 3, 13, 9]} +{"sent_id": [3, 1, 0, 5, 9, 2]} +{"sent_id": [1, 8, 4, 0, 2, 3]} +{"sent_id": [4, 5, 3, 0, 17, 6]} +{"sent_id": [1, 2, 0, 10, 6, 8]} +{"sent_id": [1, 2, 4, 15, 9, 13]} +{"sent_id": [0, 1, 7, 2, 5, 4]} +{"sent_id": [1, 2, 5, 0, 12, 16]} +{"sent_id": [1, 2, 3, 7, 6, 4]} +{"sent_id": [7, 6, 0, 8, 4, 5]} +{"sent_id": [1, 2, 4, 0, 5, 13]} +{"sent_id": [1, 2, 5, 0, 4, 11]} +{"sent_id": [3, 2, 1, 4, 14, 7]} +{"sent_id": [1, 2, 13, 9, 0, 4]} +{"sent_id": [5, 2, 11, 6, 10, 14]} +{"sent_id": [3, 10, 5, 7, 8, 13]} +{"sent_id": [6, 3, 10, 4, 7, 1]} +{"sent_id": [1, 2, 0, 8, 7, 15]} +{"sent_id": [5, 2, 0, 1, 4, 3]} +{"sent_id": [2, 1, 4, 0, 3, 6]} +{"sent_id": [1, 0, 8, 13, 7, 12]} +{"sent_id": [2, 1, 4, 3, 0, 8]} +{"sent_id": [2, 12, 5, 10, 4, 1]} +{"sent_id": [0, 1, 2, 10, 5, 7]} +{"sent_id": [3, 2, 4, 0, 5, 8]} +{"sent_id": [1, 2, 8, 4, 10, 5]} +{"sent_id": [4, 12, 2, 1, 3, 0]} +{"sent_id": [2, 15, 6, 0, 5, 3]} +{"sent_id": [5, 0, 4, 1, 3, 2]} +{"sent_id": [1, 2, 0, 9, 3, 10]} +{"sent_id": [5, 6, 9, 0, 11, 4]} +{"sent_id": [0, 1, 2, 3, 7, 4]} +{"sent_id": [2, 1, 5, 8, 0, 6]} +{"sent_id": [1, 13, 2, 4, 10, 3]} +{"sent_id": [1, 2, 4, 0, 9, 3]} +{"sent_id": [1, 3, 0, 2, 6, 8]} +{"sent_id": [2, 1, 0, 9, 7, 8]} +{"sent_id": [1, 3, 0, 5, 6, 2]} +{"sent_id": [3, 1, 11, 10, 13, 0]} +{"sent_id": [1, 2, 7, 5, 0, 4]} +{"sent_id": [0, 15, 16, 2, 1, 5]} +{"sent_id": [0, 1, 2, 3, 5, 4]} +{"sent_id": [2, 1, 10, 0, 7, 4]} +{"sent_id": [1, 7, 8, 3, 2, 4]} +{"sent_id": [5, 2, 1, 3, 0, 12]} +{"sent_id": [1, 2, 0, 14, 8, 17]} +{"sent_id": [5, 3, 1, 2, 9, 6]} +{"sent_id": [2, 3, 9, 1, 4, 0]} +{"sent_id": [7, 0, 3, 2, 1, 5]} +{"sent_id": [0, 1, 22, 5, 2, 4]} +{"sent_id": [3, 4, 2, 1, 5, 10]} +{"sent_id": [0, 1, 13, 3, 4, 7]} +{"sent_id": [0, 5, 4, 1, 3, 2]} +{"sent_id": [4, 3, 12, 14, 15, 7]} +{"sent_id": [0, 1, 4, 13, 9, 8]} +{"sent_id": [1, 2, 0, 3, 8, 4]} +{"sent_id": [1, 4, 2, 0, 7, 5]} +{"sent_id": [3, 1, 2, 0, 4, 5]} +{"sent_id": [0, 12, 2, 1, 16, 10]} +{"sent_id": [3, 9, 10, 2, 1, 12]} +{"sent_id": [3, 7, 1, 0, 8, 2]} +{"sent_id": [1, 2, 3, 0, 4, 5]} +{"sent_id": [3, 2, 1, 6, 0, 7]} +{"sent_id": [1, 3, 2, 4, 5, 12]} +{"sent_id": [1, 2, 5, 9, 3, 6]} +{"sent_id": [2, 0, 1, 3, 4]} +{"sent_id": [3, 1, 7, 5, 0, 4]} +{"sent_id": [2, 5, 0, 3, 4, 1]} +{"sent_id": [6, 7, 17, 1, 0, 2]} +{"sent_id": [1, 4, 7, 8, 2, 3]} +{"sent_id": [1, 5, 4, 2, 6, 16]} +{"sent_id": [0, 2, 1, 10, 5, 4]} +{"sent_id": [1, 2, 8, 0, 3, 5]} +{"sent_id": [3, 10, 1, 8, 6, 2]} +{"sent_id": [2, 0, 3, 4, 1, 18]} +{"sent_id": [1, 7, 5, 2, 0, 11]} +{"sent_id": [2, 3, 0, 15, 4, 10]} +{"sent_id": [4, 5, 16, 15, 1, 2]} +{"sent_id": [1, 3, 11, 2, 0, 6]} +{"sent_id": [1, 2, 15, 4, 8, 0]} +{"sent_id": [0, 3, 9, 6, 10, 1]} +{"sent_id": [1, 4, 2, 3, 12, 5]} +{"sent_id": [1, 2, 4, 3, 5, 11]} +{"sent_id": [1, 2, 4, 0, 11, 3]} +{"sent_id": [2, 1, 9, 5, 0, 13]} +{"sent_id": [2, 3, 8, 6, 5, 0]} +{"sent_id": [0, 1, 2, 15, 3, 5]} +{"sent_id": [2, 0, 1, 3, 6, 7]} +{"sent_id": [1, 3, 5, 0, 2, 4]} +{"sent_id": [2, 3, 10, 0, 5, 4]} +{"sent_id": [1, 2, 3, 0, 6, 10]} +{"sent_id": [3, 1, 2, 4, 8, 9]} +{"sent_id": [3, 0, 4, 2, 17, 6]} +{"sent_id": [3, 5, 4, 6, 11, 1]} +{"sent_id": [0, 6, 14, 1, 13, 5]} +{"sent_id": [0, 10, 3, 1, 4, 2]} +{"sent_id": [1, 4, 0, 14, 6, 2]} +{"sent_id": [1, 2, 0, 5, 7, 8]} +{"sent_id": [3, 8, 4, 2, 0, 5]} +{"sent_id": [4, 2, 12, 5, 13, 14]} +{"sent_id": [2, 5, 3, 6, 11, 8]} +{"sent_id": [4, 2, 1, 14, 3, 7]} +{"sent_id": [1, 5, 2, 7, 3, 4]} +{"sent_id": [2, 1, 4, 0, 5, 6]} +{"sent_id": [1, 3, 2, 6, 0, 5]} +{"sent_id": [2, 1, 4, 3, 6, 0]} +{"sent_id": [8, 4, 2, 3, 0, 1]} +{"sent_id": [3, 10, 2, 4, 5, 6]} +{"sent_id": [10, 3, 4, 0, 2, 1]} +{"sent_id": [1, 4, 10, 0, 7, 6]} +{"sent_id": [0, 2, 1, 7, 4, 14]} +{"sent_id": [3, 0, 1, 2, 5, 6]} +{"sent_id": [2, 1, 3, 4, 5, 8]} +{"sent_id": [3, 4, 9, 5, 6, 14]} +{"sent_id": [3, 4, 5, 9, 2, 10]} +{"sent_id": [1, 2, 8, 0, 3, 15]} +{"sent_id": [1, 4, 3, 2, 0, 10]} +{"sent_id": [4, 2, 12, 5, 3, 7]} +{"sent_id": [0, 1, 7, 8, 9, 2]} +{"sent_id": [3, 2, 4, 7, 12, 9]} +{"sent_id": [2, 1, 10, 12, 8, 5]} +{"sent_id": [3, 16, 1, 0, 4, 6]} +{"sent_id": [2, 4, 1, 6, 3, 5]} +{"sent_id": [2, 0, 3, 8, 1, 11]} +{"sent_id": [2, 4, 8, 1, 7, 6]} +{"sent_id": [9, 3, 12, 4, 16, 5]} +{"sent_id": [3, 8, 0, 7, 5, 2]} +{"sent_id": [1, 4, 3, 10, 5, 6]} +{"sent_id": [3, 0, 1, 2, 9, 5]} +{"sent_id": [4, 3, 5, 0, 8, 17]} +{"sent_id": [2, 3, 5, 0, 12, 4]} +{"sent_id": [1, 3, 6, 2, 5, 4]} +{"sent_id": [2, 1, 0, 5, 10, 3]} +{"sent_id": [2, 1, 9, 10, 3, 5]} +{"sent_id": [4, 3, 0, 9, 10, 7]} +{"sent_id": [1, 2, 6, 3, 5, 8]} +{"sent_id": [0, 9, 4, 7, 5, 3]} +{"sent_id": [4, 3, 5, 1, 9, 6]} +{"sent_id": [2, 3, 1, 14, 0, 4]} +{"sent_id": [3, 6, 5, 2, 12, 7]} +{"sent_id": [3, 0, 7, 1, 4, 6]} +{"sent_id": [11, 4, 9, 2, 5, 6]} +{"sent_id": [2, 3, 4, 16, 0, 5]} +{"sent_id": [3, 15, 7, 4, 0, 8]} +{"sent_id": [3, 1, 0, 7, 2, 5]} +{"sent_id": [2, 9, 0, 5, 12, 6]} +{"sent_id": [1, 2, 4, 5, 6, 0]} +{"sent_id": [1, 0, 12, 7, 15, 9]} +{"sent_id": [3, 4, 2, 5, 0, 7]} +{"sent_id": [1, 2, 0, 5, 12, 10]} +{"sent_id": [2, 1, 3, 4, 11, 9]} +{"sent_id": [0, 1, 8, 9, 7, 15]} +{"sent_id": [1, 3, 2, 12, 0, 4]} +{"sent_id": [3, 2, 1, 6, 0, 15]} +{"sent_id": [1, 4, 5, 2, 6, 3]} +{"sent_id": [4, 0, 1, 5, 7, 2]} +{"sent_id": [4, 1, 3, 2, 5, 6]} +{"sent_id": [0, 2, 1, 4, 13, 5]} +{"sent_id": [2, 3, 0, 1, 15, 9]} +{"sent_id": [1, 0, 4, 7, 3, 9]} +{"sent_id": [1, 0, 3, 10, 2, 7]} +{"sent_id": [1, 0, 5, 3, 11, 8]} +{"sent_id": [4, 10, 2, 3, 7, 14]} +{"sent_id": [1, 13, 2, 4, 3, 0]} +{"sent_id": [3, 6, 2, 1, 17, 13]} +{"sent_id": [3, 4, 0, 5, 1, 2]} +{"sent_id": [1, 7, 5, 11, 4, 0]} +{"sent_id": [5, 3, 1, 6, 2, 7]} +{"sent_id": [1, 4, 2, 7, 3, 6]} +{"sent_id": [2, 4, 3, 8, 5, 0]} +{"sent_id": [1, 2, 12, 6, 7, 8]} +{"sent_id": [4, 1, 5, 0, 9, 3]} +{"sent_id": [0, 4, 3, 12, 6, 8]} +{"sent_id": [5, 4, 7, 0, 1, 2]} +{"sent_id": [2, 8, 6, 3, 10, 5]} +{"sent_id": [1, 2, 3, 16, 5, 13]} +{"sent_id": [1, 0, 2, 4, 13, 6]} +{"sent_id": [1, 12, 3, 2, 0, 5]} +{"sent_id": [1, 4, 0, 2, 3, 15]} +{"sent_id": [1, 6, 2, 3, 7, 5]} +{"sent_id": [2, 4, 3, 0, 11, 1]} +{"sent_id": [4, 7, 5, 6, 0, 2]} +{"sent_id": [2, 11, 6, 4, 7, 8]} +{"sent_id": [1, 6, 0, 2, 3, 5]} +{"sent_id": [2, 3, 6, 9, 7, 8]} +{"sent_id": [3, 0, 5, 2, 1, 4]} +{"sent_id": [0, 2, 6, 1, 5, 7]} +{"sent_id": [4, 2, 1, 3, 12, 13]} +{"sent_id": [0, 4, 1, 5, 12, 3]} +{"sent_id": [1, 0, 15, 2, 13, 6]} +{"sent_id": [2, 4, 3, 0, 5, 1]} +{"sent_id": [1, 2, 0, 4, 3, 5]} +{"sent_id": [1, 2, 3, 8, 7, 6]} +{"sent_id": [0, 4, 3, 5, 2, 8]} +{"sent_id": [5, 2, 7, 6, 9, 11]} +{"sent_id": [2, 1, 3, 0, 4, 5]} +{"sent_id": [1, 2, 4, 0, 7, 6]} +{"sent_id": [1, 2, 10, 3, 4, 8]} +{"sent_id": [1, 4, 0, 2, 3, 5]} +{"sent_id": [3, 9, 4, 1, 0, 10]} +{"sent_id": [1, 3, 2, 7, 13, 5]} +{"sent_id": [10, 11, 16, 7, 12, 18]} +{"sent_id": [2, 1, 17, 14, 15, 13]} +{"sent_id": [0, 1, 13, 12, 2, 10]} +{"sent_id": [1, 3, 4, 8, 12, 2]} +{"sent_id": [1, 2, 3, 4, 6, 5]} +{"sent_id": [2, 1, 6, 5, 4, 0]} +{"sent_id": [1, 0, 3, 10, 4, 8]} +{"sent_id": [3, 9, 6, 0, 1, 8]} +{"sent_id": [1, 9, 2, 0, 18, 10]} +{"sent_id": [4, 3, 2, 5, 6, 1]} +{"sent_id": [5, 2, 4, 0, 3, 1]} +{"sent_id": [3, 13, 2, 6, 7, 4]} +{"sent_id": [2, 6, 12, 3, 11, 4]} +{"sent_id": [3, 1, 6, 4, 0, 2]} +{"sent_id": [2, 1, 4, 0, 10, 5]} +{"sent_id": [3, 0, 2, 1, 8, 7]} +{"sent_id": [1, 2, 4, 0, 13, 6]} +{"sent_id": [2, 1, 5, 10, 4, 3]} +{"sent_id": [3, 4, 18, 1, 2, 12]} +{"sent_id": [1, 0, 20, 12, 8, 7]} +{"sent_id": [3, 0, 4, 9, 2, 12]} +{"sent_id": [2, 1, 10, 3, 0, 6]} +{"sent_id": [1, 5, 8, 2, 7, 12]} +{"sent_id": [3, 5, 4, 6, 12, 1]} +{"sent_id": [3, 4, 7, 2, 6, 8]} +{"sent_id": [0, 4, 2, 9, 10, 1]} +{"sent_id": [4, 7, 3, 11, 0, 2]} +{"sent_id": [7, 1, 5, 0, 13, 4]} +{"sent_id": [1, 6, 2, 0, 5, 7]} +{"sent_id": [1, 2, 3, 4, 9, 10]} +{"sent_id": [3, 1, 4, 13, 14, 2]} +{"sent_id": [3, 4, 2, 1, 11, 5]} +{"sent_id": [2, 1, 3, 9, 8, 17]} +{"sent_id": [3, 2, 4, 1, 5, 6]} +{"sent_id": [1, 2, 10, 3, 0, 5]} +{"sent_id": [1, 2, 11, 10, 0, 12]} +{"sent_id": [3, 2, 0, 4, 5, 15]} +{"sent_id": [4, 0, 3, 15, 16, 5]} +{"sent_id": [4, 1, 5, 15, 11, 8]} +{"sent_id": [3, 1, 12, 11, 10, 2]} +{"sent_id": [8, 3, 10, 5, 4, 6]} +{"sent_id": [1, 3, 2, 15, 5, 6]} +{"sent_id": [2, 0, 1, 3, 5, 6]} +{"sent_id": [3, 4, 2, 5, 6, 11]} +{"sent_id": [0, 3, 1, 2, 4, 7]} +{"sent_id": [0, 5, 2, 1, 10, 4]} +{"sent_id": [0, 4, 8, 14, 6, 9]} +{"sent_id": [1, 0, 2, 4, 10, 11]} +{"sent_id": [0, 5, 6, 4, 7, 13]} +{"sent_id": [6, 7, 1, 16, 5, 3]} +{"sent_id": [1, 2, 3, 4, 5, 0]} +{"sent_id": [3, 1, 2, 4, 0, 7]} +{"sent_id": [0, 4, 17, 2, 12, 14]} +{"sent_id": [1, 0, 4, 3, 2, 10]} +{"sent_id": [0, 2, 1, 8, 4, 9]} +{"sent_id": [0, 3, 1, 9, 2, 4]} +{"sent_id": [4, 3, 1, 5, 12, 11]} +{"sent_id": [1, 0, 4, 8, 6, 9]} +{"sent_id": [3, 1, 2, 0, 18, 9]} +{"sent_id": [1, 4, 0, 7, 2, 6]} +{"sent_id": [4, 1, 7, 6, 2, 3]} +{"sent_id": [3, 4, 0, 6, 1, 7]} +{"sent_id": [3, 4, 15, 1, 16, 0]} +{"sent_id": [1, 3, 2, 4, 10, 0]} +{"sent_id": [3, 6, 4, 5, 11, 7]} +{"sent_id": [1, 2, 0, 11, 6, 10]} +{"sent_id": [3, 1, 2, 0, 6, 4]} +{"sent_id": [1, 3, 0, 4, 8, 9]} +{"sent_id": [1, 9, 4, 3, 7, 2]} +{"sent_id": [8, 4, 1, 5, 11, 0]} +{"sent_id": [1, 2, 3, 7, 9, 0]} +{"sent_id": [8, 0, 3, 5, 1, 2]} +{"sent_id": [13, 14, 0, 10, 3, 4]} +{"sent_id": [5, 1, 6, 2, 8, 9]} +{"sent_id": [3, 5, 4, 8, 2, 18]} +{"sent_id": [1, 2, 5, 12, 11, 0]} +{"sent_id": [5, 4, 18, 11, 9, 3]} +{"sent_id": [1, 5, 2, 7, 8, 6]} +{"sent_id": [5, 1, 2, 21, 7, 8]} +{"sent_id": [3, 1, 13, 0, 2, 4]} +{"sent_id": [5, 1, 3, 6, 2, 4]} +{"sent_id": [2, 9, 0, 11, 4, 8]} +{"sent_id": [4, 1, 7, 9, 14, 5]} +{"sent_id": [4, 2, 5, 3, 0, 9]} +{"sent_id": [1, 2, 3, 5, 7, 14]} +{"sent_id": [10, 2, 1, 9, 0, 8]} +{"sent_id": [1, 8, 4, 0, 6, 9]} +{"sent_id": [2, 0, 4, 11, 1, 7]} +{"sent_id": [2, 1, 0, 6, 3, 4]} +{"sent_id": [1, 0, 3, 11, 8, 13]} +{"sent_id": [4, 1, 2, 0, 10, 3]} +{"sent_id": [1, 2, 4, 6, 3, 5]} +{"sent_id": [3, 1, 2, 7, 0, 5]} +{"sent_id": [2, 0, 3, 5, 6, 4]} +{"sent_id": [1, 7, 8, 6, 3, 0]} +{"sent_id": [0, 1, 12, 13, 10, 7]} +{"sent_id": [1, 2, 8, 3, 6, 7]} +{"sent_id": [0, 4, 7, 6, 2, 1]} +{"sent_id": [4, 5, 0, 3, 6, 14]} +{"sent_id": [2, 4, 0, 3, 5, 7]} +{"sent_id": [2, 4, 7, 5, 1, 10]} +{"sent_id": [3, 4, 11, 15, 5, 0]} +{"sent_id": [3, 1, 10, 2, 9, 15]} +{"sent_id": [4, 5, 7, 1, 14, 10]} +{"sent_id": [3, 4, 2, 6, 5, 1]} +{"sent_id": [3, 2, 6, 5, 7, 20]} +{"sent_id": [1, 2, 5, 6, 4, 3]} +{"sent_id": [3, 8, 4, 5, 13, 2]} +{"sent_id": [7, 2, 1, 3, 9, 15]} +{"sent_id": [0, 2, 5, 1, 8, 9]} +{"sent_id": [3, 0, 2, 4, 6, 1]} +{"sent_id": [0, 2, 5, 7, 4, 1]} +{"sent_id": [4, 12, 2, 1, 3, 13]} +{"sent_id": [1, 2, 0, 5, 6, 3]} +{"sent_id": [11, 6, 7, 0, 2, 1]} +{"sent_id": [3, 2, 11, 8, 0, 21]} +{"sent_id": [1, 7, 8, 0, 5, 2]} +{"sent_id": [2, 0, 9, 1, 11, 10]} +{"sent_id": [3, 0, 7, 4, 2, 12]} +{"sent_id": [2, 9, 3, 0, 5, 1]} +{"sent_id": [1, 4, 3, 6, 2, 5]} +{"sent_id": [14, 0, 15, 2, 1, 21]} +{"sent_id": [3, 4, 0, 6, 1, 2]} +{"sent_id": [9, 3, 5, 8, 7, 1]} +{"sent_id": [2, 0, 3, 8, 14, 13]} +{"sent_id": [1, 2, 3, 0, 16, 14]} +{"sent_id": [4, 2, 1, 3, 6, 14]} +{"sent_id": [0, 1, 2, 7, 8, 6]} +{"sent_id": [1, 2, 3, 4, 16, 6]} +{"sent_id": [4, 2, 13, 5, 1, 0]} +{"sent_id": [6, 9, 20, 4, 19, 5]} +{"sent_id": [1, 3, 6, 19, 4, 17]} +{"sent_id": [1, 4, 2, 5, 14, 0]} +{"sent_id": [5, 12, 7, 13, 4, 15]} +{"sent_id": [4, 2, 3, 5, 9, 1]} +{"sent_id": [1, 2, 7, 0, 3, 16]} +{"sent_id": [3, 1, 4, 9, 16, 10]} +{"sent_id": [6, 0, 15, 11, 1, 4]} +{"sent_id": [3, 2, 8, 6, 7, 9]} +{"sent_id": [2, 5, 6, 13, 3, 14]} +{"sent_id": [0, 2, 1, 3, 5, 4]} +{"sent_id": [3, 1, 12, 17, 2, 4]} +{"sent_id": [1, 0, 2, 3, 6, 17]} +{"sent_id": [5, 2, 4, 3, 7, 6]} +{"sent_id": [1, 4, 2, 5, 13, 7]} +{"sent_id": [0, 12, 7, 13, 2, 4]} +{"sent_id": [3, 1, 0, 15, 4, 2]} +{"sent_id": [0, 3, 5, 1, 4, 7]} +{"sent_id": [1, 3, 2, 12, 4, 0]} +{"sent_id": [0, 3, 1, 2, 8, 10]} +{"sent_id": [0, 2, 1, 4, 11, 5]} +{"sent_id": [1, 2, 3, 6, 0, 12]} +{"sent_id": [2, 4, 15, 3, 8, 11]} +{"sent_id": [6, 10, 11, 14, 3, 2]} +{"sent_id": [1, 2, 9, 10, 6, 3]} +{"sent_id": [6, 7, 10, 1, 13, 3]} +{"sent_id": [3, 1, 2, 4, 11, 5]} +{"sent_id": [11, 1, 0, 16, 2, 14]} +{"sent_id": [3, 5, 4, 20, 2, 8]} +{"sent_id": [3, 1, 12, 0, 5, 2]} +{"sent_id": [2, 3, 1, 4, 0, 7]} +{"sent_id": [3, 4, 1, 2, 6, 0]} +{"sent_id": [12, 4, 3, 2, 5, 1]} +{"sent_id": [0, 3, 2, 1, 7, 16]} +{"sent_id": [0, 1, 2, 10, 3, 9]} +{"sent_id": [1, 0, 2, 5, 3, 11]} +{"sent_id": [1, 2, 0, 3, 8, 11]} +{"sent_id": [3, 2, 4, 6, 19, 5]} +{"sent_id": [2, 9, 1, 0, 4, 6]} +{"sent_id": [0, 1, 2, 10, 3, 4]} +{"sent_id": [13, 3, 4, 2, 12, 1]} +{"sent_id": [9, 13, 0, 3, 4, 1]} +{"sent_id": [2, 3, 0, 1, 9, 4]} +{"sent_id": [2, 0, 7, 1, 11, 3]} +{"sent_id": [8, 13, 9, 1, 7, 11]} +{"sent_id": [13, 1, 4, 0, 14, 2]} +{"sent_id": [0, 11, 1, 9, 2, 7]} +{"sent_id": [0, 4, 5, 11, 1, 3]} +{"sent_id": [2, 1, 3, 5, 4, 9]} +{"sent_id": [13, 2, 6, 1, 0, 11]} +{"sent_id": [3, 1, 8, 0, 4, 5]} +{"sent_id": [2, 0, 1, 15, 7, 4]} +{"sent_id": [3, 5, 2, 1, 7, 0]} +{"sent_id": [1, 0, 4, 5, 10, 16]} +{"sent_id": [3, 4, 5, 0, 14, 1]} +{"sent_id": [0, 2, 3, 5, 1, 4]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [2, 7, 3, 13, 10, 8]} +{"sent_id": [1, 2, 6, 5, 8, 14]} +{"sent_id": [4, 5, 13, 7, 17, 0]} +{"sent_id": [1, 5, 4, 6, 0, 3]} +{"sent_id": [20, 13, 14, 9, 18, 10]} +{"sent_id": [1, 5, 0, 2, 3, 6]} +{"sent_id": [3, 2, 1, 12, 17, 6]} +{"sent_id": [2, 11, 3, 0, 9, 14]} +{"sent_id": [0, 3, 2, 6, 4, 1]} +{"sent_id": [1, 3, 0, 9, 7, 4]} +{"sent_id": [2, 3, 5, 4, 0, 14]} +{"sent_id": [9, 2, 3, 1, 11, 0]} +{"sent_id": [1, 2, 11, 7, 8, 12]} +{"sent_id": [3, 4, 10, 0, 2, 7]} +{"sent_id": [2, 1, 6, 0, 3, 7]} +{"sent_id": [5, 19, 20, 0, 17, 2]} +{"sent_id": [3, 5, 1, 12, 7, 10]} +{"sent_id": [2, 3, 8, 4, 5, 0]} +{"sent_id": [0, 3, 4, 2, 5, 10]} +{"sent_id": [0, 6, 1, 3, 4, 2]} +{"sent_id": [1, 2, 3, 4, 0, 6]} +{"sent_id": [1, 3, 4, 0, 10, 11]} +{"sent_id": [1, 3, 2, 10, 11, 9]} +{"sent_id": [8, 3, 13, 1, 0, 2]} +{"sent_id": [1, 4, 8, 2, 3, 13]} +{"sent_id": [3, 2, 0, 4, 6, 1]} +{"sent_id": [3, 1, 11, 4, 8, 9]} +{"sent_id": [4, 2, 1, 3, 7, 0]} +{"sent_id": [1, 2, 9, 10, 6, 12]} +{"sent_id": [3, 4, 15, 1, 9, 16]} +{"sent_id": [0, 1, 3, 2, 17, 10]} +{"sent_id": [1, 2, 4, 6, 7, 0]} +{"sent_id": [3, 0, 4, 2, 9, 1]} +{"sent_id": [3, 2, 0, 7, 4, 9]} +{"sent_id": [5, 2, 0, 1, 8, 4]} +{"sent_id": [0, 3, 1, 2, 10, 4]} +{"sent_id": [3, 0, 4, 2, 11, 8]} +{"sent_id": [1, 7, 2, 3, 0, 5]} +{"sent_id": [7, 10, 2, 16, 6, 3]} +{"sent_id": [1, 4, 0, 2, 3, 5]} +{"sent_id": [4, 0, 3, 7, 5, 6]} +{"sent_id": [3, 0, 16, 2, 1, 10]} +{"sent_id": [2, 13, 0, 17, 1, 7]} +{"sent_id": [2, 3, 4, 6, 0, 5]} +{"sent_id": [1, 3, 5, 4, 2, 6]} +{"sent_id": [11, 4, 3, 2, 12, 7]} +{"sent_id": [0, 4, 1, 2, 3, 5]} +{"sent_id": [1, 8, 2, 4, 6, 0]} +{"sent_id": [3, 4, 10, 2, 1, 9]} +{"sent_id": [1, 2, 5, 12, 0, 4]} +{"sent_id": [1, 3, 2, 5, 9, 7]} +{"sent_id": [2, 6, 0, 10, 9, 7]} +{"sent_id": [3, 6, 5, 4, 8, 7]} +{"sent_id": [3, 0, 2, 5, 1, 11]} +{"sent_id": [2, 1, 4, 7, 5, 0]} +{"sent_id": [2, 1, 0, 6, 5, 10]} +{"sent_id": [3, 2, 20, 11, 1, 0]} +{"sent_id": [1, 2, 4, 0, 15, 3]} +{"sent_id": [6, 1, 2, 0, 3, 13]} +{"sent_id": [3, 2, 4, 0, 1, 14]} +{"sent_id": [3, 6, 5, 9, 4, 15]} +{"sent_id": [1, 0, 7, 4, 5, 2]} +{"sent_id": [1, 4, 2, 6, 12, 11]} +{"sent_id": [3, 2, 4, 6, 5, 9]} +{"sent_id": [2, 1, 3, 7, 6, 8]} +{"sent_id": [2, 14, 9, 15, 12, 1]} +{"sent_id": [14, 13, 4, 1, 2, 6]} +{"sent_id": [0, 4, 3, 1, 2]} +{"sent_id": [3, 2, 4, 1, 8, 10]} +{"sent_id": [0, 2, 1, 3, 4, 7]} +{"sent_id": [2, 0, 4, 1, 5, 8]} +{"sent_id": [1, 0, 3, 4, 2, 7]} +{"sent_id": [1, 3, 2, 12, 4, 0]} +{"sent_id": [1, 0, 2, 3, 10, 5]} +{"sent_id": [1, 2, 0, 5, 6, 7]} +{"sent_id": [1, 2, 9, 0, 6, 8]} +{"sent_id": [1, 4, 2, 3, 6, 8]} +{"sent_id": [2, 3, 5, 9, 1, 11]} +{"sent_id": [2, 10, 1, 3, 5, 4]} +{"sent_id": [3, 2, 1, 13, 4, 7]} +{"sent_id": [1, 5, 2, 18, 3, 0]} +{"sent_id": [3, 7, 0, 6, 2, 10]} +{"sent_id": [2, 1, 4, 5, 9, 11]} +{"sent_id": [0, 2, 10, 1, 3, 4]} +{"sent_id": [2, 3, 1, 10, 6, 11]} +{"sent_id": [0, 3, 1, 4, 12, 2]} +{"sent_id": [1, 4, 3, 2, 6, 18]} +{"sent_id": [1, 16, 4, 2, 0, 3]} +{"sent_id": [3, 1, 5, 0, 6, 9]} +{"sent_id": [1, 2, 4, 3, 0, 6]} +{"sent_id": [3, 4, 1, 2, 0, 6]} +{"sent_id": [2, 3, 5, 4, 7, 6]} +{"sent_id": [1, 0, 15, 10, 2, 7]} +{"sent_id": [0, 5, 3, 4, 18, 6]} +{"sent_id": [3, 2, 8, 1, 0, 9]} +{"sent_id": [2, 4, 18, 16, 5, 15]} +{"sent_id": [3, 2, 1, 10, 8, 5]} +{"sent_id": [1, 0, 3, 4, 10, 9]} +{"sent_id": [3, 1, 4, 2, 6, 7]} +{"sent_id": [2, 3, 6, 7, 1, 0]} +{"sent_id": [0, 8, 3, 16, 2, 13]} +{"sent_id": [2, 4, 15, 0, 3, 14]} +{"sent_id": [1, 2, 7, 10, 9, 0]} +{"sent_id": [6, 0, 5, 11, 1, 4]} +{"sent_id": [1, 2, 14, 3, 0, 5]} +{"sent_id": [3, 8, 0, 1, 2, 4]} +{"sent_id": [2, 3, 0, 6, 14, 8]} +{"sent_id": [3, 2, 1, 12, 17, 7]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [3, 14, 11, 12, 4, 7]} +{"sent_id": [0, 2, 1, 9, 15, 3]} +{"sent_id": [1, 2, 3, 15, 7, 0]} +{"sent_id": [1, 3, 0, 2, 5, 7]} +{"sent_id": [4, 5, 10, 11, 17, 2]} +{"sent_id": [1, 7, 2, 3, 8, 9]} +{"sent_id": [7, 14, 6, 15, 8, 16]} +{"sent_id": [14, 1, 0, 4, 6, 5]} +{"sent_id": [1, 4, 12, 2, 3, 8]} +{"sent_id": [5, 7, 16, 6, 1, 19]} +{"sent_id": [2, 1, 3, 10, 11, 4]} +{"sent_id": [15, 7, 3, 4, 0, 5]} +{"sent_id": [2, 7, 10, 16, 1, 4]} +{"sent_id": [0, 5, 6, 3, 1, 2]} +{"sent_id": [0, 1, 5, 6, 7, 3]} +{"sent_id": [3, 0, 5, 2, 1, 7]} +{"sent_id": [1, 4, 8, 5, 2, 3]} +{"sent_id": [1, 3, 4, 5, 2, 0]} +{"sent_id": [4, 1, 0, 5, 3, 2]} +{"sent_id": [5, 6, 12, 4, 13, 10]} +{"sent_id": [1, 2, 5, 11, 3, 0]} +{"sent_id": [3, 1, 13, 12, 11, 5]} +{"sent_id": [0, 12, 1, 3, 13, 4]} +{"sent_id": [2, 9, 0, 1, 4, 5]} +{"sent_id": [4, 9, 1, 5, 7, 3]} +{"sent_id": [1, 14, 3, 2, 0, 8]} +{"sent_id": [4, 2, 0, 3, 7, 1]} +{"sent_id": [0, 15, 2, 1, 6, 7]} +{"sent_id": [0, 3, 2, 7, 1, 12]} +{"sent_id": [3, 4, 5, 8, 7, 6]} +{"sent_id": [1, 2, 7, 3, 9, 6]} +{"sent_id": [0, 7, 2, 1, 12, 4]} +{"sent_id": [1, 3, 0, 2, 10, 14]} +{"sent_id": [2, 1, 5, 0, 4, 6]} +{"sent_id": [3, 1, 0, 10, 16, 2]} +{"sent_id": [2, 4, 1, 8, 7, 0]} +{"sent_id": [3, 1, 2, 12, 4, 5]} +{"sent_id": [2, 1, 5, 9, 3, 8]} +{"sent_id": [2, 1, 3, 6, 4, 8]} +{"sent_id": [4, 12, 1, 3, 2, 11]} +{"sent_id": [2, 1, 3, 12, 5, 8]} +{"sent_id": [0, 1, 2, 4, 13, 3]} +{"sent_id": [6, 15, 4, 3, 18, 11]} +{"sent_id": [3, 10, 17, 5, 0, 6]} +{"sent_id": [0, 1, 8, 4, 2, 13]} +{"sent_id": [3, 2, 1, 0, 13, 4]} +{"sent_id": [4, 0, 12, 3, 1, 2]} +{"sent_id": [3, 5, 1, 4, 0, 2]} +{"sent_id": [3, 15, 4, 0, 6, 11]} +{"sent_id": [3, 1, 2, 12, 0, 11]} +{"sent_id": [1, 8, 7, 0, 3, 2]} +{"sent_id": [1, 8, 10, 2, 0, 5]} +{"sent_id": [1, 2, 3, 5, 8, 0]} +{"sent_id": [1, 4, 2, 3, 13, 8]} +{"sent_id": [2, 1, 3, 4, 0, 8]} +{"sent_id": [1, 2, 6, 5, 0, 4]} +{"sent_id": [6, 0, 5, 4, 2, 3]} +{"sent_id": [16, 5, 0, 10, 12, 3]} +{"sent_id": [3, 2, 5, 6, 7, 4]} +{"sent_id": [4, 10, 9, 2, 18, 6]} +{"sent_id": [3, 4, 10, 1, 2, 5]} +{"sent_id": [1, 2, 4, 6, 5, 7]} +{"sent_id": [5, 12, 0, 1, 2, 3]} +{"sent_id": [14, 0, 2, 1, 4, 7]} +{"sent_id": [3, 0, 1, 2, 5, 7]} +{"sent_id": [2, 0, 5, 8, 3, 11]} +{"sent_id": [3, 2, 8, 0, 1, 5]} +{"sent_id": [3, 4, 1, 10, 5, 0]} +{"sent_id": [0, 3, 1, 2, 4, 15]} +{"sent_id": [3, 5, 1, 4, 11, 12]} +{"sent_id": [2, 3, 4, 9, 1, 7]} +{"sent_id": [4, 0, 13, 1, 5, 2]} +{"sent_id": [3, 2, 12, 5, 4, 9]} +{"sent_id": [1, 9, 4, 2, 3, 8]} +{"sent_id": [0, 3, 8, 4, 7, 2]} +{"sent_id": [1, 2, 8, 3, 5, 11]} +{"sent_id": [3, 0, 1, 4, 2, 14]} +{"sent_id": [5, 10, 0, 6, 13, 1]} +{"sent_id": [3, 1, 2, 4, 0, 6]} +{"sent_id": [4, 1, 2, 3, 6, 10]} +{"sent_id": [1, 0, 5, 8, 4, 3]} +{"sent_id": [2, 1, 0, 13, 5, 6]} +{"sent_id": [4, 2, 5, 17, 19, 1]} +{"sent_id": [2, 1, 6, 5, 3, 4]} +{"sent_id": [2, 0, 1, 3, 4]} +{"sent_id": [0, 9, 1, 4, 2, 5]} +{"sent_id": [10, 2, 3, 4, 1, 5]} +{"sent_id": [0, 2, 1, 4, 6, 5]} +{"sent_id": [6, 0, 4, 3, 2, 8]} +{"sent_id": [0, 3, 4, 2, 1, 8]} +{"sent_id": [1, 5, 0, 2, 3, 6]} +{"sent_id": [2, 1, 6, 5, 3, 4]} +{"sent_id": [0, 1, 7, 2, 5, 6]} +{"sent_id": [2, 3, 4, 8, 7, 0]} +{"sent_id": [1, 5, 2, 15, 3, 7]} +{"sent_id": [2, 3, 8, 11, 9, 0]} +{"sent_id": [2, 6, 7, 4, 5, 3]} +{"sent_id": [3, 2, 1, 11, 5, 6]} +{"sent_id": [2, 3, 1, 10, 0, 4]} +{"sent_id": [3, 2, 5, 13, 15, 4]} +{"sent_id": [1, 2, 7, 0, 5, 8]} +{"sent_id": [1, 3, 8, 5, 2, 10]} +{"sent_id": [0, 1, 4, 3, 2, 14]} +{"sent_id": [0, 1, 2, 11, 3, 8]} +{"sent_id": [4, 9, 16, 10, 13, 1]} +{"sent_id": [2, 3, 0, 10, 16, 15]} +{"sent_id": [0, 6, 5, 12, 10, 9]} +{"sent_id": [1, 2, 5, 14, 8, 9]} +{"sent_id": [2, 1, 0, 4, 6, 5]} +{"sent_id": [0, 9, 8, 1, 3, 2]} +{"sent_id": [1, 2, 8, 7, 4, 6]} +{"sent_id": [2, 11, 12, 3, 0, 9]} +{"sent_id": [1, 4, 2, 6, 11, 5]} +{"sent_id": [11, 2, 3, 7, 4, 0]} +{"sent_id": [1, 2, 4, 8, 6, 5]} +{"sent_id": [0, 4, 14, 2, 1, 9]} +{"sent_id": [3, 1, 0, 4, 10, 9]} +{"sent_id": [3, 1, 6, 4, 2, 18]} +{"sent_id": [1, 2, 5, 4, 9, 6]} +{"sent_id": [1, 2, 5, 10, 9, 3]} +{"sent_id": [1, 2, 3, 14, 5, 4]} +{"sent_id": [3, 2, 4, 6, 1, 14]} +{"sent_id": [3, 1, 2, 12, 4, 0]} +{"sent_id": [3, 1, 2, 9, 4, 13]} +{"sent_id": [1, 3, 2, 5, 8, 0]} +{"sent_id": [4, 1, 6, 18, 5, 3]} +{"sent_id": [5, 6, 2, 3, 15, 16]} +{"sent_id": [1, 4, 14, 15, 10, 0]} +{"sent_id": [0, 4, 8, 2, 3, 10]} +{"sent_id": [5, 8, 0, 2, 4, 1]} +{"sent_id": [0, 5, 2, 3, 8, 13]} +{"sent_id": [1, 3, 0, 2, 4, 11]} +{"sent_id": [1, 8, 0, 4, 2, 7]} +{"sent_id": [3, 4, 10, 0, 5, 6]} +{"sent_id": [1, 2, 3, 5, 4, 10]} +{"sent_id": [4, 3, 0, 1, 5, 7]} +{"sent_id": [1, 6, 3, 5, 4, 0]} +{"sent_id": [3, 8, 1, 6, 0, 11]} +{"sent_id": [2, 1, 3, 4, 12, 10]} +{"sent_id": [0, 1, 5, 2, 4, 11]} +{"sent_id": [1, 3, 2, 5, 0, 4]} +{"sent_id": [1, 0, 16, 13, 3, 12]} +{"sent_id": [1, 2, 8, 3, 6, 4]} +{"sent_id": [5, 2, 3, 6, 9, 8]} +{"sent_id": [1, 4, 3, 2, 8, 5]} +{"sent_id": [0, 1, 5, 4, 3, 2]} +{"sent_id": [0, 12, 3, 5, 2, 1]} +{"sent_id": [0, 9, 1, 3, 4, 2]} +{"sent_id": [4, 3, 8, 0, 6, 2]} +{"sent_id": [0, 5, 7, 6, 11, 4]} +{"sent_id": [3, 4, 17, 5, 11, 2]} +{"sent_id": [1, 0, 14, 10, 7, 11]} +{"sent_id": [3, 13, 14, 1, 2, 7]} +{"sent_id": [1, 2, 6, 4, 5, 0]} +{"sent_id": [3, 2, 4, 7, 5, 1]} +{"sent_id": [0, 2, 9, 6, 4, 3]} +{"sent_id": [4, 2, 3, 1, 7, 0]} +{"sent_id": [1, 6, 0, 2, 4, 3]} +{"sent_id": [2, 0, 3, 12, 4, 11]} +{"sent_id": [1, 4, 0, 2, 10, 3]} +{"sent_id": [1, 4, 9, 5, 2, 3]} +{"sent_id": [3, 18, 0, 2, 6, 5]} +{"sent_id": [1, 3, 4, 2, 10, 5]} +{"sent_id": [1, 5, 3, 2, 8, 4]} +{"sent_id": [1, 0, 2, 9, 7, 5]} +{"sent_id": [2, 5, 4, 3, 24, 16]} +{"sent_id": [0, 9, 7, 3, 1, 12]} +{"sent_id": [2, 0, 3, 11, 12, 7]} +{"sent_id": [1, 3, 0, 4, 2, 14]} +{"sent_id": [3, 5, 4, 8, 16, 11]} +{"sent_id": [0, 2, 11, 1, 9, 8]} +{"sent_id": [1, 0, 2, 3, 11, 7]} +{"sent_id": [2, 3, 7, 4, 1, 0]} +{"sent_id": [2, 3, 5, 4, 1, 0]} +{"sent_id": [2, 3, 12, 1, 0, 9]} +{"sent_id": [1, 3, 9, 0, 2, 4]} +{"sent_id": [1, 2, 9, 6, 7, 8]} +{"sent_id": [2, 4, 0, 3, 10, 9]} +{"sent_id": [0, 2, 8, 1, 3, 10]} +{"sent_id": [1, 13, 9, 3, 7, 2]} +{"sent_id": [1, 19, 4, 12, 0, 2]} +{"sent_id": [4, 15, 1, 3, 12, 10]} +{"sent_id": [4, 5, 8, 3, 6, 2]} +{"sent_id": [0, 15, 2, 9, 1, 14]} +{"sent_id": [4, 5, 1, 3, 9, 13]} +{"sent_id": [3, 14, 1, 4, 2, 5]} +{"sent_id": [3, 0, 4, 5, 1, 2]} +{"sent_id": [2, 1, 9, 6, 0, 17]} +{"sent_id": [1, 9, 2, 8, 0, 5]} +{"sent_id": [2, 0, 6, 15, 5, 7]} +{"sent_id": [8, 0, 1, 4, 2, 12]} +{"sent_id": [0, 2, 3, 4, 9, 10]} +{"sent_id": [0, 3, 4, 1, 2, 7]} +{"sent_id": [4, 2, 11, 12, 6, 3]} +{"sent_id": [4, 3, 1, 2, 12, 5]} +{"sent_id": [3, 10, 7, 8, 13, 2]} +{"sent_id": [4, 1, 3, 0, 6, 8]} +{"sent_id": [2, 0, 3, 4, 12, 7]} +{"sent_id": [3, 2, 9, 4, 1, 6]} +{"sent_id": [1, 5, 3, 0, 2, 10]} +{"sent_id": [3, 4, 0, 8, 5, 1]} +{"sent_id": [0, 10, 1, 15, 12, 2]} +{"sent_id": [3, 1, 2, 4, 5, 10]} +{"sent_id": [1, 8, 2, 0, 6, 17]} +{"sent_id": [0, 1, 12, 3, 8, 6]} +{"sent_id": [3, 1, 7, 4, 18, 6]} +{"sent_id": [6, 2, 10, 5, 0, 1]} +{"sent_id": [5, 1, 9, 0, 2, 6]} +{"sent_id": [1, 3, 12, 7, 9, 0]} +{"sent_id": [6, 15, 2, 11, 9, 12]} +{"sent_id": [1, 2, 7, 11, 0, 21]} +{"sent_id": [4, 5, 2, 11, 1, 6]} +{"sent_id": [3, 2, 1, 16, 17, 0]} +{"sent_id": [0, 6, 3, 11, 12, 5]} +{"sent_id": [3, 4, 5, 0, 1, 10]} +{"sent_id": [7, 1, 9, 20, 14, 10]} +{"sent_id": [1, 2, 19, 18, 5, 17]} +{"sent_id": [18, 7, 0, 15, 12, 4]} +{"sent_id": [1, 17, 2, 5, 4, 10]} +{"sent_id": [1, 2, 6, 0, 9, 5]} +{"sent_id": [1, 2, 3, 4, 9, 0]} +{"sent_id": [2, 1, 11, 3, 0, 6]} +{"sent_id": [1, 4, 2, 5, 7, 6]} +{"sent_id": [8, 2, 4, 3, 6, 5]} +{"sent_id": [3, 10, 4, 2, 8, 6]} +{"sent_id": [5, 3, 16, 1, 2, 17]} +{"sent_id": [1, 2, 3, 6, 8, 5]} +{"sent_id": [1, 0, 2, 3, 13, 4]} +{"sent_id": [0, 3, 4, 16, 11, 1]} +{"sent_id": [1, 9, 2, 3, 4, 10]} +{"sent_id": [1, 15, 10, 5, 4, 2]} +{"sent_id": [4, 0, 12, 1, 5, 11]} +{"sent_id": [3, 1, 7, 5, 10, 2]} +{"sent_id": [8, 3, 10, 18, 6, 2]} +{"sent_id": [3, 10, 2, 0, 1, 4]} +{"sent_id": [1, 4, 5, 3, 2, 0]} +{"sent_id": [2, 1, 4, 3, 5, 6]} +{"sent_id": [3, 4, 2, 0, 11, 9]} +{"sent_id": [1, 0, 2, 12, 11, 5]} +{"sent_id": [8, 3, 6, 5, 2, 9]} +{"sent_id": [4, 1, 2, 7, 3, 0]} +{"sent_id": [3, 0, 2, 1, 8, 9]} +{"sent_id": [5, 0, 2, 4, 3, 6]} +{"sent_id": [3, 0, 14, 17, 4, 11]} +{"sent_id": [1, 2, 3, 11, 16, 5]} +{"sent_id": [2, 1, 3, 0, 5, 4]} +{"sent_id": [1, 2, 13, 14, 3, 5]} +{"sent_id": [4, 1, 2, 5, 3, 12]} +{"sent_id": [4, 3, 0, 2, 1, 19]} +{"sent_id": [0, 1, 2, 5, 6, 11]} +{"sent_id": [0, 4, 3, 2, 1, 8]} +{"sent_id": [3, 2, 1, 13, 10, 12]} +{"sent_id": [4, 1, 3, 6, 9, 2]} +{"sent_id": [1, 3, 0, 7, 2, 11]} +{"sent_id": [8, 0, 3, 6, 4, 1]} +{"sent_id": [3, 2, 1, 5, 0, 7]} +{"sent_id": [2, 3, 6, 1, 4, 5]} +{"sent_id": [1, 2, 5, 6, 3, 4]} +{"sent_id": [0, 11, 3, 4, 1, 5]} +{"sent_id": [1, 0, 2, 5, 7, 10]} +{"sent_id": [4, 2, 5, 3, 7, 8]} +{"sent_id": [11, 1, 5, 4, 18, 2]} +{"sent_id": [4, 1, 6, 7, 8, 3]} +{"sent_id": [2, 1, 9, 4, 0, 7]} +{"sent_id": [0, 3, 17, 5, 16, 1]} +{"sent_id": [1, 2, 3, 11, 4, 10]} +{"sent_id": [1, 2, 6, 8, 3, 0]} +{"sent_id": [0, 2, 1, 14, 6, 7]} +{"sent_id": [2, 0, 1, 4, 7, 3]} +{"sent_id": [1, 3, 10, 2, 0, 4]} +{"sent_id": [6, 0, 10, 11, 9, 1]} +{"sent_id": [0, 3, 12, 1, 17, 2]} +{"sent_id": [0, 7, 3, 1, 4, 2]} +{"sent_id": [1, 6, 4, 3, 5, 0]} +{"sent_id": [0, 2, 3, 1, 4, 5]} +{"sent_id": [1, 4, 2, 3, 0, 9]} +{"sent_id": [1, 2, 5, 6, 7, 13]} +{"sent_id": [3, 11, 1, 10, 14, 9]} +{"sent_id": [3, 2, 0, 1, 11, 10]} +{"sent_id": [1, 5, 11, 2, 3, 0]} +{"sent_id": [0, 3, 10, 4, 1, 16]} +{"sent_id": [2, 0, 1, 4, 5, 8]} +{"sent_id": [10, 0, 9, 8, 16, 14]} +{"sent_id": [1, 5, 0, 2, 9, 10]} +{"sent_id": [2, 1, 5, 7, 12, 6]} +{"sent_id": [1, 0, 2, 12, 6, 5]} +{"sent_id": [2, 3, 15, 4, 1, 5]} +{"sent_id": [3, 2, 1, 5, 4, 8]} +{"sent_id": [3, 0, 1, 4, 2, 17]} +{"sent_id": [1, 0, 6, 8, 11, 2]} +{"sent_id": [2, 3, 0, 4, 7, 5]} +{"sent_id": [2, 5, 3, 0, 12, 6]} +{"sent_id": [0, 3, 5, 9, 7, 8]} +{"sent_id": [9, 2, 15, 3, 1, 0]} +{"sent_id": [1, 5, 6, 2, 0, 7]} +{"sent_id": [7, 1, 2, 10, 0, 15]} +{"sent_id": [1, 2, 3, 11, 0, 4]} +{"sent_id": [4, 3, 0, 1, 5, 2]} +{"sent_id": [16, 1, 4, 3, 15, 2]} +{"sent_id": [0, 13, 4, 10, 7, 6]} +{"sent_id": [4, 2, 1, 14, 3, 5]} +{"sent_id": [1, 4, 3, 0, 5, 2]} +{"sent_id": [10, 6, 4, 8, 5, 7]} +{"sent_id": [1, 2, 3, 18, 4, 17]} +{"sent_id": [7, 5, 2, 8, 1, 3]} +{"sent_id": [2, 1, 6, 5, 10, 8]} +{"sent_id": [1, 3, 12, 11, 9, 8]} +{"sent_id": [6, 7, 2, 1, 3, 16]} +{"sent_id": [19, 8, 2, 3, 1, 0]} +{"sent_id": [4, 1, 16, 17, 7, 9]} +{"sent_id": [4, 5, 2, 3, 0, 13]} +{"sent_id": [1, 3, 2, 0, 9, 7]} +{"sent_id": [10, 2, 0, 13, 4, 1]} +{"sent_id": [11, 3, 0, 6, 12, 7]} +{"sent_id": [2, 3, 1, 0, 5, 6]} +{"sent_id": [0, 1, 2, 4, 8, 6]} +{"sent_id": [3, 2, 1, 0, 4, 11]} +{"sent_id": [2, 0, 4, 1, 9, 8]} +{"sent_id": [7, 3, 4, 1, 2, 5]} +{"sent_id": [2, 4, 3, 1, 7, 6]} +{"sent_id": [1, 3, 7, 0, 5, 4]} +{"sent_id": [3, 14, 4, 2, 6, 5]} +{"sent_id": [8, 5, 4, 13, 9, 3]} +{"sent_id": [1, 11, 3, 5, 13, 6]} +{"sent_id": [1, 12, 0, 2, 3, 7]} +{"sent_id": [3, 6, 1, 2, 0, 8]} +{"sent_id": [1, 2, 0, 4, 10, 5]} +{"sent_id": [0, 2, 1, 3, 4, 5]} +{"sent_id": [2, 4, 1, 14, 6, 7]} +{"sent_id": [12, 0, 3, 4, 5, 2]} +{"sent_id": [4, 5, 15, 3, 1, 2]} +{"sent_id": [5, 0, 4, 6, 10, 9]} +{"sent_id": [1, 0, 8, 7, 6, 3]} +{"sent_id": [5, 3, 6, 1, 2, 8]} +{"sent_id": [0, 1, 5, 4, 18, 8]} +{"sent_id": [5, 0, 13, 14, 9, 1]} +{"sent_id": [3, 4, 0, 1, 11, 5]} +{"sent_id": [1, 3, 2, 0, 5, 6]} +{"sent_id": [1, 2, 5, 3, 8, 4]} +{"sent_id": [2, 3, 0, 4, 10, 9]} +{"sent_id": [5, 3, 6, 7, 2, 0]} +{"sent_id": [3, 9, 1, 2, 0, 5]} +{"sent_id": [2, 3, 4, 8, 0, 5]} +{"sent_id": [4, 14, 1, 0, 3, 6]} +{"sent_id": [3, 4, 2, 10, 7, 9]} +{"sent_id": [0, 15, 3, 6, 2, 4]} +{"sent_id": [9, 3, 2, 4, 0, 5]} +{"sent_id": [5, 1, 2, 6, 17, 7]} +{"sent_id": [2, 1, 5, 4, 0, 6]} +{"sent_id": [4, 0, 1, 5, 2, 3]} +{"sent_id": [1, 2, 3, 0, 15, 11]} +{"sent_id": [1, 4, 7, 8, 12, 9]} +{"sent_id": [3, 12, 7, 0, 2, 8]} +{"sent_id": [3, 4, 0, 1, 5, 14]} +{"sent_id": [1, 0, 7, 9, 4, 8]} +{"sent_id": [0, 1, 2, 15, 8, 9]} +{"sent_id": [0, 1, 16, 4, 8, 2]} +{"sent_id": [1, 2, 3, 4, 7, 10]} +{"sent_id": [3, 11, 10, 2, 13, 7]} +{"sent_id": [1, 8, 11, 3, 24, 26]} +{"sent_id": [1, 0, 5, 2, 6, 4]} +{"sent_id": [2, 1, 14, 0, 16, 6]} +{"sent_id": [12, 1, 4, 2, 8, 0]} +{"sent_id": [3, 6, 1, 0, 11, 8]} +{"sent_id": [4, 2, 5, 3, 10, 8]} +{"sent_id": [1, 3, 4, 2, 10, 14]} +{"sent_id": [3, 1, 13, 2, 6, 0]} +{"sent_id": [1, 4, 2, 3, 0, 6]} +{"sent_id": [1, 8, 9, 0, 3, 2]} +{"sent_id": [3, 2, 16, 4, 6, 5]} +{"sent_id": [3, 12, 4, 2, 5, 9]} +{"sent_id": [3, 1, 8, 2, 9, 11]} +{"sent_id": [1, 3, 2, 12, 10, 7]} +{"sent_id": [0, 1, 2, 10, 4, 3]} +{"sent_id": [2, 0, 1, 13, 14, 8]} +{"sent_id": [0, 4, 3, 2, 5, 7]} +{"sent_id": [4, 1, 14, 2, 8, 6]} +{"sent_id": [1, 3, 2, 5, 13, 4]} +{"sent_id": [8, 13, 9, 14, 19, 1]} +{"sent_id": [4, 1, 3, 2, 13, 6]} +{"sent_id": [3, 0, 14, 12, 2, 1]} +{"sent_id": [4, 1, 2, 7, 12, 5]} +{"sent_id": [2, 15, 6, 9, 3, 5]} +{"sent_id": [1, 2, 0, 5, 8, 4]} +{"sent_id": [1, 10, 0, 5, 3, 11]} +{"sent_id": [5, 2, 3, 0, 6, 1]} +{"sent_id": [3, 1, 2, 22, 13, 5]} +{"sent_id": [1, 2, 7, 8, 5, 9]} +{"sent_id": [1, 2, 4, 0, 8, 3]} +{"sent_id": [2, 1, 0, 5, 7, 3]} +{"sent_id": [3, 4, 0, 18, 2, 17]} +{"sent_id": [3, 0, 9, 8, 13, 14]} +{"sent_id": [4, 11, 3, 10, 0, 12]} +{"sent_id": [3, 2, 0, 8, 5, 1]} +{"sent_id": [6, 4, 3, 5, 1, 15]} +{"sent_id": [3, 0, 4, 1, 11, 12]} +{"sent_id": [1, 2, 3, 7, 0, 8]} +{"sent_id": [1, 3, 10, 0, 7, 6]} +{"sent_id": [4, 5, 11, 1, 2, 8]} +{"sent_id": [0, 1, 3, 9, 2, 17]} +{"sent_id": [5, 0, 2, 4, 1, 12]} +{"sent_id": [1, 4, 3, 2, 0, 6]} +{"sent_id": [3, 2, 1, 5, 6, 4]} +{"sent_id": [1, 2, 7, 4, 0, 19]} +{"sent_id": [2, 0, 1, 8, 11, 5]} +{"sent_id": [1, 2, 9, 10, 4, 5]} +{"sent_id": [4, 1, 2, 3, 9, 17]} +{"sent_id": [0, 1, 2, 9, 6, 8]} +{"sent_id": [3, 10, 1, 0, 4, 7]} +{"sent_id": [1, 3, 2, 4, 5, 11]} +{"sent_id": [0, 2, 10, 3, 1, 4]} +{"sent_id": [3, 7, 10, 5, 11, 13]} +{"sent_id": [2, 1, 4, 0, 8, 3]} +{"sent_id": [6, 7, 1, 5, 4, 0]} +{"sent_id": [3, 1, 4, 0, 2, 5]} +{"sent_id": [3, 13, 14, 2, 11, 7]} +{"sent_id": [1, 2, 3, 15, 7, 14]} +{"sent_id": [1, 14, 3, 11, 2, 13]} +{"sent_id": [12, 0, 4, 10, 8, 3]} +{"sent_id": [4, 14, 6, 3, 13, 19]} +{"sent_id": [2, 0, 1, 3, 7, 9]} +{"sent_id": [1, 3, 11, 2, 0, 15]} +{"sent_id": [1, 3, 11, 5, 4, 2]} +{"sent_id": [1, 0, 11, 10, 2, 3]} +{"sent_id": [9, 19, 8, 18, 4, 7]} +{"sent_id": [4, 5, 3, 0, 1, 14]} +{"sent_id": [2, 3, 4, 16, 9, 6]} +{"sent_id": [1, 6, 8, 2, 5, 3]} +{"sent_id": [2, 5, 22, 3, 10, 6]} +{"sent_id": [3, 11, 2, 6, 8, 7]} +{"sent_id": [3, 1, 2, 6, 15, 4]} +{"sent_id": [4, 3, 16, 5, 7, 1]} +{"sent_id": [3, 1, 2, 4, 0, 11]} +{"sent_id": [9, 3, 4, 5, 2, 8]} +{"sent_id": [2, 1, 0, 5, 11, 8]} +{"sent_id": [2, 0, 3, 4, 1, 5]} +{"sent_id": [1, 2, 3, 6, 4, 14]} +{"sent_id": [1, 4, 7, 12, 8, 9]} +{"sent_id": [0, 4, 3, 15, 2, 1]} +{"sent_id": [4, 1, 6, 3, 14, 2]} +{"sent_id": [3, 10, 5, 2, 4, 11]} +{"sent_id": [2, 16, 11, 13, 5, 18]} +{"sent_id": [3, 0, 1, 9, 2, 6]} +{"sent_id": [1, 5, 3, 4, 6, 2]} +{"sent_id": [1, 3, 2, 0, 9, 13]} +{"sent_id": [1, 3, 2, 6, 4, 0]} +{"sent_id": [1, 3, 12, 7, 0, 9]} +{"sent_id": [4, 3, 7, 5, 14, 13]} +{"sent_id": [3, 1, 2, 5, 8, 4]} +{"sent_id": [1, 2, 0, 7, 5, 3]} +{"sent_id": [1, 3, 8, 0, 2, 4]} +{"sent_id": [16, 3, 0, 22, 1, 4]} +{"sent_id": [8, 11, 22, 15, 13, 7]} +{"sent_id": [1, 4, 2, 3, 0, 6]} +{"sent_id": [2, 1, 3, 5, 6, 0]} +{"sent_id": [9, 2, 10, 3, 11, 4]} +{"sent_id": [1, 2, 3, 11, 10, 4]} +{"sent_id": [0, 12, 1, 15, 14, 4]} +{"sent_id": [5, 0, 6, 7, 2, 17]} +{"sent_id": [1, 0, 7, 2, 3, 6]} +{"sent_id": [1, 15, 5, 2, 4, 11]} +{"sent_id": [3, 1, 2, 4, 6, 5]} +{"sent_id": [1, 3, 12, 0, 2, 4]} +{"sent_id": [2, 7, 6, 3, 0, 1]} +{"sent_id": [3, 4, 6, 5, 0, 1]} +{"sent_id": [2, 3, 1, 0, 4, 9]} +{"sent_id": [5, 4, 2, 6, 0, 8]} +{"sent_id": [2, 8, 3, 4, 1, 5]} +{"sent_id": [4, 1, 8, 2, 5, 9]} +{"sent_id": [2, 6, 4, 3, 5, 1]} +{"sent_id": [2, 6, 16, 9, 1, 12]} +{"sent_id": [3, 6, 8, 7, 2, 5]} +{"sent_id": [3, 1, 16, 15, 8, 6]} +{"sent_id": [0, 3, 1, 2, 4, 5]} +{"sent_id": [2, 1, 9, 0, 3, 11]} +{"sent_id": [5, 1, 2, 7, 14, 12]} +{"sent_id": [1, 2, 0, 3, 18, 4]} +{"sent_id": [0, 1, 3, 8, 5, 2]} +{"sent_id": [3, 6, 4, 0, 1, 2]} +{"sent_id": [1, 3, 4, 10, 7, 2]} +{"sent_id": [0, 2, 4, 3, 10, 7]} +{"sent_id": [1, 5, 9, 2, 20, 7]} +{"sent_id": [2, 1, 3, 5, 4, 6]} +{"sent_id": [4, 1, 5, 6, 3, 2]} +{"sent_id": [3, 5, 4, 1, 0, 14]} +{"sent_id": [1, 6, 2, 8, 10, 9]} +{"sent_id": [1, 2, 0, 11, 3, 6]} +{"sent_id": [0, 13, 3, 4, 2, 8]} +{"sent_id": [1, 3, 2, 4, 7, 0]} +{"sent_id": [3, 5, 4, 0, 6, 1]} +{"sent_id": [1, 15, 2, 5, 16, 3]} +{"sent_id": [1, 5, 3, 4, 2, 8]} +{"sent_id": [1, 4, 11, 5, 0, 10]} +{"sent_id": [1, 2, 3, 4, 10, 0]} +{"sent_id": [1, 2, 15, 6, 10, 11]} +{"sent_id": [1, 2, 12, 9, 3, 0]} +{"sent_id": [2, 3, 0, 7, 4, 11]} +{"sent_id": [1, 5, 6, 0, 2, 7]} +{"sent_id": [0, 1, 2, 16, 3, 5]} +{"sent_id": [3, 9, 8, 4, 2, 6]} +{"sent_id": [3, 9, 1, 8, 7, 10]} +{"sent_id": [1, 2, 0, 5, 14, 9]} +{"sent_id": [2, 3, 7, 4, 5, 6]} +{"sent_id": [2, 7, 10, 1, 3, 0]} +{"sent_id": [3, 0, 12, 1, 2, 4]} +{"sent_id": [3, 1, 2, 0, 12, 10]} +{"sent_id": [5, 1, 0, 2, 6, 3]} +{"sent_id": [1, 6, 3, 5, 2, 4]} +{"sent_id": [3, 1, 2, 4, 6, 7]} +{"sent_id": [1, 5, 4, 3, 7, 2]} +{"sent_id": [1, 2, 10, 5, 3, 4]} +{"sent_id": [4, 3, 2, 1, 9, 11]} +{"sent_id": [1, 5, 8, 12, 4, 9]} +{"sent_id": [2, 3, 4, 7, 1, 0]} +{"sent_id": [0, 8, 3, 2, 1, 16]} +{"sent_id": [2, 5, 9, 0, 7, 8]} +{"sent_id": [1, 6, 3, 17, 11, 10]} +{"sent_id": [1, 9, 5, 4, 2, 0]} +{"sent_id": [1, 3, 2, 12, 0, 7]} +{"sent_id": [2, 3, 4, 8, 12, 10]} +{"sent_id": [2, 1, 5, 3, 4, 12]} +{"sent_id": [3, 5, 6, 1, 7, 4]} +{"sent_id": [6, 7, 8, 1, 4, 5]} +{"sent_id": [1, 5, 2, 13, 3, 0]} +{"sent_id": [0, 2, 6, 4, 1, 7]} +{"sent_id": [1, 0, 5, 4, 12, 13]} +{"sent_id": [0, 3, 1, 7, 2, 8]} +{"sent_id": [0, 1, 18, 5, 2, 16]} +{"sent_id": [0, 13, 4, 1, 2, 9]} +{"sent_id": [4, 3, 1, 6, 5, 14]} +{"sent_id": [3, 1, 2, 10, 0, 4]} +{"sent_id": [1, 7, 4, 2, 10, 5]} +{"sent_id": [3, 1, 13, 14, 0, 2]} +{"sent_id": [1, 2, 0, 6, 7, 10]} +{"sent_id": [2, 3, 10, 15, 6, 9]} +{"sent_id": [2, 6, 4, 3, 5, 11]} +{"sent_id": [0, 14, 2, 1, 6, 9]} +{"sent_id": [1, 6, 5, 17, 16, 3]} +{"sent_id": [4, 0, 5, 1, 2, 3]} +{"sent_id": [1, 2, 9, 6, 5, 10]} +{"sent_id": [4, 3, 0, 5, 13, 1]} +{"sent_id": [1, 3, 4, 7, 2, 0]} +{"sent_id": [3, 1, 2, 4, 0, 5]} +{"sent_id": [1, 6, 4, 2, 16, 3]} +{"sent_id": [1, 4, 3, 5, 2, 0]} +{"sent_id": [7, 5, 2, 6, 0, 10]} +{"sent_id": [1, 2, 6, 3, 4, 14]} +{"sent_id": [8, 1, 0, 2, 7, 3]} +{"sent_id": [1, 0, 2, 6, 12, 11]} +{"sent_id": [2, 3, 1, 5, 9, 6]} +{"sent_id": [4, 1, 0, 5, 6, 10]} +{"sent_id": [1, 2, 4, 3, 5, 8]} +{"sent_id": [2, 5, 1, 10, 9, 4]} +{"sent_id": [3, 2, 1, 9, 0, 18]} +{"sent_id": [2, 1, 6, 5, 0, 4]} +{"sent_id": [4, 0, 5, 1, 7, 18]} +{"sent_id": [2, 4, 0, 5, 8, 6]} +{"sent_id": [3, 4, 0, 1, 2, 7]} +{"sent_id": [1, 2, 7, 4, 8, 3]} +{"sent_id": [1, 0, 15, 9, 6, 5]} +{"sent_id": [0, 4, 1, 2, 5, 13]} +{"sent_id": [1, 10, 2, 4, 3, 6]} +{"sent_id": [4, 2, 3, 1, 8, 0]} +{"sent_id": [1, 2, 3, 11, 0, 4]} +{"sent_id": [3, 8, 0, 2, 1, 4]} +{"sent_id": [2, 1, 0, 8, 11, 14]} +{"sent_id": [3, 2, 8, 11, 6, 7]} +{"sent_id": [1, 2, 3, 5, 6, 0]} +{"sent_id": [0, 2, 1, 4, 7, 6]} +{"sent_id": [3, 2, 4, 8, 14, 0]} +{"sent_id": [1, 4, 2, 5, 13, 9]} +{"sent_id": [2, 1, 11, 4, 3, 0]} +{"sent_id": [8, 1, 0, 7, 13, 4]} +{"sent_id": [0, 1, 3, 2, 5, 9]} +{"sent_id": [5, 14, 1, 0, 11, 15]} +{"sent_id": [5, 1, 4, 6, 0, 10]} +{"sent_id": [1, 2, 6, 8, 13, 4]} +{"sent_id": [3, 4, 0, 10, 7, 1]} +{"sent_id": [1, 6, 5, 2, 4, 0]} +{"sent_id": [2, 1, 13, 5, 6, 0]} +{"sent_id": [1, 3, 11, 2, 14, 7]} +{"sent_id": [4, 1, 11, 9, 10, 0]} +{"sent_id": [3, 2, 1, 7, 0, 5]} +{"sent_id": [1, 2, 4, 17, 6, 5]} +{"sent_id": [1, 4, 12, 7, 9, 3]} +{"sent_id": [4, 1, 11, 6, 15, 17]} +{"sent_id": [3, 0, 1, 6, 2, 8]} +{"sent_id": [0, 4, 1, 14, 3, 10]} +{"sent_id": [2, 1, 6, 5, 11, 12]} +{"sent_id": [1, 2, 11, 9, 5, 7]} +{"sent_id": [0, 1, 6, 7, 3, 2]} +{"sent_id": [1, 3, 2, 5, 4, 0]} +{"sent_id": [1, 2, 3, 4, 9, 8]} +{"sent_id": [1, 0, 2, 3, 9, 5]} +{"sent_id": [2, 3, 4, 6, 5, 13]} +{"sent_id": [2, 3, 1, 8, 5, 7]} +{"sent_id": [2, 1, 4, 9, 7, 10]} +{"sent_id": [13, 3, 0, 1, 2, 10]} +{"sent_id": [1, 2, 3, 6, 9, 0]} +{"sent_id": [1, 2, 3, 5, 4, 6]} +{"sent_id": [2, 5, 10, 7, 6, 0]} +{"sent_id": [0, 12, 1, 19, 17, 2]} +{"sent_id": [9, 10, 11, 19, 18, 0]} +{"sent_id": [5, 2, 1, 15, 12, 14]} +{"sent_id": [1, 5, 2, 14, 6, 15]} +{"sent_id": [3, 0, 10, 1, 2, 14]} +{"sent_id": [5, 6, 2, 3, 4, 15]} +{"sent_id": [4, 5, 3, 10, 6, 7]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [1, 2, 3, 10, 8, 7]} +{"sent_id": [3, 4, 1, 5, 12, 6]} +{"sent_id": [1, 5, 2, 3, 9, 0]} +{"sent_id": [0, 6, 1, 9, 4, 2]} +{"sent_id": [1, 2, 6, 4, 0, 7]} +{"sent_id": [2, 12, 6, 8, 0, 5]} +{"sent_id": [7, 2, 10, 8, 1, 9]} +{"sent_id": [5, 11, 4, 13, 6, 17]} +{"sent_id": [7, 0, 9, 1, 11, 8]} +{"sent_id": [5, 4, 2, 1, 12, 6]} +{"sent_id": [0, 2, 4, 10, 1, 3]} +{"sent_id": [5, 1, 3, 8, 4, 0]} +{"sent_id": [2, 0, 1, 6, 10, 15]} +{"sent_id": [1, 3, 2, 4, 0, 5]} +{"sent_id": [1, 3, 2, 9, 0, 4]} +{"sent_id": [3, 1, 8, 2, 0, 6]} +{"sent_id": [0, 5, 3, 17, 9, 1]} +{"sent_id": [3, 4, 5, 1, 2, 9]} +{"sent_id": [0, 1, 10, 11, 6, 16]} +{"sent_id": [2, 1, 3, 4, 7, 6]} +{"sent_id": [1, 2, 4, 8, 0, 3]} +{"sent_id": [2, 1, 7, 3, 4, 5]} +{"sent_id": [3, 2, 0, 4, 6, 10]} +{"sent_id": [3, 0, 1, 16, 11, 2]} +{"sent_id": [1, 2, 5, 3, 4, 6]} +{"sent_id": [8, 2, 0, 6, 4, 16]} +{"sent_id": [0, 4, 1, 22, 2, 17]} +{"sent_id": [1, 12, 9, 11, 2, 8]} +{"sent_id": [3, 0, 1, 7, 6, 8]} +{"sent_id": [0, 1, 2, 5, 10, 4]} +{"sent_id": [0, 14, 1, 10, 4, 15]} +{"sent_id": [1, 5, 2, 12, 3, 4]} +{"sent_id": [1, 12, 3, 5, 4, 11]} +{"sent_id": [0, 4, 1, 9, 6, 5]} +{"sent_id": [1, 4, 5, 6, 15, 0]} +{"sent_id": [1, 8, 4, 0, 3, 9]} +{"sent_id": [12, 3, 15, 0, 7, 1]} +{"sent_id": [2, 1, 4, 5, 0, 7]} +{"sent_id": [9, 14, 4, 7, 8, 13]} +{"sent_id": [3, 1, 2, 0, 7, 4]} +{"sent_id": [0, 17, 18, 1, 2, 19]} +{"sent_id": [4, 17, 2, 10, 8, 12]} +{"sent_id": [3, 2, 4, 1, 5, 12]} +{"sent_id": [1, 3, 4, 8, 0, 2]} +{"sent_id": [2, 3, 8, 4, 7, 0]} +{"sent_id": [1, 0, 4, 2, 3, 5]} +{"sent_id": [7, 8, 6, 4, 17, 1]} +{"sent_id": [1, 2, 3, 7, 0, 6]} +{"sent_id": [4, 5, 0, 6, 1, 13]} +{"sent_id": [1, 2, 8, 4, 5, 0]} +{"sent_id": [2, 4, 3, 1, 10, 0]} +{"sent_id": [0, 4, 7, 3, 5, 10]} +{"sent_id": [1, 10, 0, 5, 7, 16]} +{"sent_id": [0, 4, 3, 5, 2, 9]} +{"sent_id": [4, 0, 6, 1, 3, 13]} +{"sent_id": [1, 3, 2, 7, 4, 0]} +{"sent_id": [3, 1, 13, 2, 8, 5]} +{"sent_id": [0, 4, 1, 2, 5, 3]} +{"sent_id": [3, 0, 15, 2, 1, 5]} +{"sent_id": [11, 2, 3, 4, 0, 12]} +{"sent_id": [1, 2, 5, 3, 6, 8]} +{"sent_id": [2, 0, 3, 6, 9, 17]} +{"sent_id": [0, 1, 2, 4, 11, 6]} +{"sent_id": [4, 0, 17, 1, 3, 13]} +{"sent_id": [1, 2, 3, 5, 15, 0]} +{"sent_id": [2, 7, 3, 8, 1, 0]} +{"sent_id": [0, 1, 3, 9, 7, 2]} +{"sent_id": [5, 11, 3, 10, 0, 6]} +{"sent_id": [0, 2, 1, 15, 3, 4]} +{"sent_id": [3, 7, 1, 0, 5, 4]} +{"sent_id": [4, 1, 2, 0, 6, 8]} +{"sent_id": [5, 2, 1, 4, 0, 13]} +{"sent_id": [5, 4, 15, 7, 8, 12]} +{"sent_id": [4, 5, 14, 3, 0, 16]} +{"sent_id": [5, 4, 3, 6, 1, 2]} +{"sent_id": [4, 1, 2, 3, 10, 13]} +{"sent_id": [1, 2, 9, 5, 10, 0]} +{"sent_id": [1, 3, 2, 0, 6, 4]} +{"sent_id": [0, 1, 2, 7, 9, 3]} +{"sent_id": [1, 2, 5, 4, 8, 0]} +{"sent_id": [4, 3, 14, 5, 7, 13]} +{"sent_id": [3, 4, 0, 1, 2, 8]} +{"sent_id": [0, 1, 4, 6, 10, 3]} +{"sent_id": [1, 2, 0, 4, 11, 6]} +{"sent_id": [1, 0, 3, 8, 11, 6]} +{"sent_id": [1, 2, 13, 0, 18, 3]} +{"sent_id": [1, 3, 2, 16, 17, 4]} +{"sent_id": [14, 3, 1, 2, 9, 15]} +{"sent_id": [2, 1, 3, 6, 4, 5]} +{"sent_id": [10, 9, 2, 16, 1, 4]} +{"sent_id": [4, 1, 3, 2, 0, 6]} +{"sent_id": [3, 4, 10, 9, 1, 8]} +{"sent_id": [1, 2, 6, 0, 15, 3]} +{"sent_id": [2, 6, 8, 3, 11, 12]} +{"sent_id": [0, 4, 5, 2, 3, 7]} +{"sent_id": [1, 2, 0, 3, 7, 8]} +{"sent_id": [18, 4, 1, 16, 17, 13]} +{"sent_id": [2, 1, 4, 3, 6, 0]} +{"sent_id": [3, 9, 0, 1, 2, 6]} +{"sent_id": [12, 8, 15, 16, 19, 4]} +{"sent_id": [3, 4, 5, 12, 17, 6]} +{"sent_id": [1, 3, 2, 5, 4, 11]} +{"sent_id": [2, 1, 0, 6, 7, 12]} +{"sent_id": [2, 3, 7, 0, 6, 8]} +{"sent_id": [2, 3, 1, 7, 12, 0]} +{"sent_id": [4, 1, 0, 13, 3, 12]} +{"sent_id": [1, 11, 2, 3, 4, 10]} +{"sent_id": [1, 2, 3, 5, 15, 14]} +{"sent_id": [3, 1, 12, 4, 2, 13]} +{"sent_id": [1, 2, 0, 11, 3, 6]} +{"sent_id": [1, 13, 6, 12, 0, 2]} +{"sent_id": [1, 0, 2, 15, 3, 11]} +{"sent_id": [3, 1, 2, 0, 4, 10]} +{"sent_id": [1, 2, 3, 4, 6, 16]} +{"sent_id": [6, 5, 1, 2, 3, 10]} +{"sent_id": [3, 2, 0, 1, 7, 11]} +{"sent_id": [2, 15, 1, 3, 4, 11]} +{"sent_id": [0, 2, 10, 3, 4, 1]} +{"sent_id": [1, 3, 4, 6, 8, 15]} +{"sent_id": [9, 7, 10, 1, 4, 0]} +{"sent_id": [3, 4, 2, 5, 10, 1]} +{"sent_id": [3, 14, 2, 1, 15, 6]} +{"sent_id": [4, 1, 0, 2, 8, 3]} +{"sent_id": [0, 3, 1, 2, 8, 4]} +{"sent_id": [3, 4, 2, 5, 10, 7]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [8, 4, 15, 1, 5, 3]} +{"sent_id": [1, 0, 4, 3, 5, 14]} +{"sent_id": [6, 1, 18, 16, 15, 3]} +{"sent_id": [3, 2, 16, 4, 0, 1]} +{"sent_id": [3, 2, 11, 7, 5, 1]} +{"sent_id": [1, 3, 0, 2, 5, 10]} +{"sent_id": [3, 5, 8, 6, 2, 10]} +{"sent_id": [6, 1, 0, 4, 13, 5]} +{"sent_id": [2, 12, 8, 1, 13, 3]} +{"sent_id": [2, 1, 0, 4, 5, 6]} +{"sent_id": [9, 3, 10, 4, 1, 8]} +{"sent_id": [4, 5, 3, 8, 13, 0]} +{"sent_id": [0, 1, 2, 12, 6, 7]} +{"sent_id": [1, 5, 3, 2, 4, 11]} +{"sent_id": [1, 3, 4, 2, 0, 12]} +{"sent_id": [1, 7, 18, 19, 3, 0]} +{"sent_id": [1, 4, 2, 5, 10, 6]} +{"sent_id": [0, 1, 3, 4, 8, 7]} +{"sent_id": [1, 2, 3, 4, 6, 0]} +{"sent_id": [13, 2, 8, 9, 12, 3]} +{"sent_id": [4, 3, 7, 1, 2, 0]} +{"sent_id": [0, 4, 5, 9, 2, 6]} +{"sent_id": [6, 1, 7, 5, 0, 3]} +{"sent_id": [5, 0, 2, 7, 3, 6]} +{"sent_id": [2, 4, 3, 5, 6, 9]} +{"sent_id": [8, 11, 6, 9, 12, 10]} +{"sent_id": [1, 2, 9, 5, 7, 6]} +{"sent_id": [0, 1, 7, 3, 11, 12]} +{"sent_id": [4, 9, 0, 1, 2, 3]} +{"sent_id": [3, 7, 1, 4, 12, 5]} +{"sent_id": [9, 0, 3, 2, 10, 15]} +{"sent_id": [1, 2, 0, 8, 6, 13]} +{"sent_id": [0, 2, 1, 5, 4, 8]} +{"sent_id": [0, 3, 1, 2, 5, 9]} +{"sent_id": [4, 3, 2, 15, 0, 14]} +{"sent_id": [3, 4, 11, 1, 7, 6]} +{"sent_id": [1, 2, 5, 6, 11, 7]} +{"sent_id": [2, 1, 3, 4, 9, 8]} +{"sent_id": [5, 7, 17, 1, 3, 0]} +{"sent_id": [1, 4, 0, 13, 3, 9]} +{"sent_id": [1, 3, 2, 16, 15, 0]} +{"sent_id": [5, 3, 1, 2, 8, 0]} +{"sent_id": [1, 0, 3, 2, 7, 5]} +{"sent_id": [3, 1, 2, 8, 4, 5]} +{"sent_id": [3, 18, 1, 2, 19, 9]} +{"sent_id": [2, 5, 1, 6, 10, 17]} +{"sent_id": [1, 2, 0, 4, 14, 3]} +{"sent_id": [1, 7, 3, 8, 12, 4]} +{"sent_id": [3, 12, 13, 4, 11, 2]} +{"sent_id": [1, 3, 5, 13, 4, 2]} +{"sent_id": [2, 4, 3, 14, 11, 15]} +{"sent_id": [3, 1, 2, 4, 9, 6]} +{"sent_id": [4, 1, 2, 0, 7, 9]} +{"sent_id": [1, 2, 4, 8, 6, 10]} +{"sent_id": [0, 3, 6, 7, 12, 9]} +{"sent_id": [3, 2, 9, 0, 5, 4]} +{"sent_id": [4, 3, 9, 0, 1, 11]} +{"sent_id": [3, 7, 1, 0, 2, 6]} +{"sent_id": [3, 0, 1, 14, 10, 2]} +{"sent_id": [2, 3, 4, 1, 10, 6]} +{"sent_id": [1, 8, 2, 7, 16, 0]} +{"sent_id": [4, 3, 9, 6, 11, 5]} +{"sent_id": [1, 2, 3, 7, 8, 4]} +{"sent_id": [6, 9, 4, 0, 5, 1]} +{"sent_id": [2, 5, 4, 1, 3, 8]} +{"sent_id": [0, 2, 1, 7, 3, 4]} +{"sent_id": [1, 2, 7, 3, 4, 6]} +{"sent_id": [3, 1, 2, 5, 10, 12]} +{"sent_id": [2, 4, 0, 1, 3, 5]} +{"sent_id": [5, 1, 0, 10, 2, 4]} +{"sent_id": [3, 9, 1, 2, 4, 8]} +{"sent_id": [0, 2, 3, 1, 4, 8]} +{"sent_id": [4, 3, 1, 2, 0, 8]} +{"sent_id": [0, 4, 5, 6, 8, 2]} +{"sent_id": [3, 9, 4, 10, 6, 14]} +{"sent_id": [3, 1, 0, 11, 9, 2]} +{"sent_id": [1, 4, 2, 14, 6, 5]} +{"sent_id": [3, 8, 1, 2, 11, 9]} +{"sent_id": [7, 6, 5, 3, 12, 4]} +{"sent_id": [5, 3, 13, 4, 1, 2]} +{"sent_id": [1, 2, 3, 11, 4, 0]} +{"sent_id": [1, 4, 2, 3, 9, 5]} +{"sent_id": [2, 3, 0, 5, 10, 4]} +{"sent_id": [1, 9, 4, 2, 3, 10]} +{"sent_id": [1, 5, 3, 11, 2, 8]} +{"sent_id": [1, 0, 3, 2, 16, 8]} +{"sent_id": [3, 8, 2, 1, 0, 4]} +{"sent_id": [1, 2, 3, 4, 7, 0]} +{"sent_id": [1, 2, 3, 9, 0, 5]} +{"sent_id": [2, 4, 3, 5, 0, 1]} +{"sent_id": [4, 2, 1, 14, 5, 15]} +{"sent_id": [1, 4, 8, 2, 0, 3]} +{"sent_id": [2, 0, 5, 9, 4, 1]} +{"sent_id": [1, 2, 0, 3, 5, 4]} +{"sent_id": [4, 14, 2, 20, 17, 19]} +{"sent_id": [4, 5, 2, 7, 10, 6]} +{"sent_id": [5, 4, 3, 12, 18, 6]} +{"sent_id": [3, 4, 7, 2, 1, 5]} +{"sent_id": [2, 0, 4, 5, 14, 6]} +{"sent_id": [0, 1, 3, 10, 2, 14]} +{"sent_id": [2, 1, 14, 9, 0, 3]} +{"sent_id": [4, 5, 2, 16, 0, 6]} +{"sent_id": [5, 1, 3, 4, 6, 0]} +{"sent_id": [1, 2, 6, 0, 3, 12]} +{"sent_id": [5, 0, 12, 29, 7, 15]} +{"sent_id": [1, 5, 3, 4, 8, 11]} +{"sent_id": [3, 14, 0, 1, 4, 5]} +{"sent_id": [1, 6, 4, 3, 0, 7]} +{"sent_id": [0, 11, 13, 8, 3, 7]} +{"sent_id": [3, 5, 9, 1, 14, 20]} +{"sent_id": [3, 8, 2, 5, 6, 4]} +{"sent_id": [1, 0, 3, 2, 12, 8]} +{"sent_id": [1, 9, 2, 4, 3, 5]} +{"sent_id": [3, 9, 1, 0, 10, 2]} +{"sent_id": [4, 7, 6, 3, 2, 0]} +{"sent_id": [0, 2, 3, 4, 1, 5]} +{"sent_id": [0, 3, 1, 8, 6, 4]} +{"sent_id": [1, 4, 0, 13, 5, 3]} +{"sent_id": [0, 5, 2, 4, 13, 1]} +{"sent_id": [0, 1, 9, 3, 2, 5]} +{"sent_id": [2, 4, 3, 5, 6, 10]} +{"sent_id": [2, 0, 4, 5, 6, 11]} +{"sent_id": [2, 1, 8, 3, 6, 9]} +{"sent_id": [0, 1, 4, 9, 2, 3]} +{"sent_id": [0, 4, 3, 9, 6, 16]} +{"sent_id": [2, 3, 0, 4, 5, 6]} +{"sent_id": [0, 2, 3, 1, 4, 6]} +{"sent_id": [5, 1, 13, 6, 0, 11]} +{"sent_id": [2, 1, 3, 0, 10, 4]} +{"sent_id": [2, 1, 5, 4, 6, 7]} +{"sent_id": [1, 7, 3, 2, 10, 4]} +{"sent_id": [3, 4, 1, 2, 15, 5]} +{"sent_id": [0, 1, 2, 4, 7, 3]} +{"sent_id": [4, 6, 0, 2, 9, 3]} +{"sent_id": [3, 1, 15, 2, 4, 9]} +{"sent_id": [3, 1, 9, 7, 0, 2]} +{"sent_id": [12, 6, 5, 1, 0, 4]} +{"sent_id": [3, 2, 0, 1, 4, 8]} +{"sent_id": [0, 2, 1, 9, 13, 7]} +{"sent_id": [1, 4, 13, 5, 3, 2]} +{"sent_id": [9, 5, 3, 6, 2, 7]} +{"sent_id": [3, 4, 0, 7, 5, 2]} +{"sent_id": [2, 1, 4, 3, 16, 0]} +{"sent_id": [1, 0, 2, 3, 11, 13]} +{"sent_id": [2, 13, 15, 0, 3, 11]} +{"sent_id": [5, 4, 15, 0, 8, 1]} +{"sent_id": [1, 2, 5, 3, 7, 4]} +{"sent_id": [9, 3, 2, 1, 10, 4]} +{"sent_id": [4, 2, 6, 12, 3, 1]} +{"sent_id": [9, 10, 13, 3, 1, 2]} +{"sent_id": [2, 3, 4, 0, 8, 5]} +{"sent_id": [4, 3, 5, 6, 1, 2]} +{"sent_id": [0, 7, 1, 2, 3, 8]} +{"sent_id": [2, 3, 9, 1, 7, 6]} +{"sent_id": [2, 4, 12, 3, 5, 7]} +{"sent_id": [1, 2, 4, 3, 0, 5]} +{"sent_id": [3, 0, 4, 1, 2, 9]} +{"sent_id": [1, 2, 0, 13, 4, 3]} +{"sent_id": [3, 1, 4, 2, 15, 6]} +{"sent_id": [1, 5, 0, 3, 11, 4]} +{"sent_id": [3, 4, 5, 7, 6, 8]} +{"sent_id": [3, 0, 5, 4, 14, 6]} +{"sent_id": [3, 5, 4, 2, 10, 1]} +{"sent_id": [2, 3, 1, 4, 10, 5]} +{"sent_id": [1, 2, 3, 8, 4, 13]} +{"sent_id": [3, 2, 11, 0, 5, 14]} +{"sent_id": [1, 15, 4, 2, 6, 5]} +{"sent_id": [2, 1, 3, 0, 4, 22]} +{"sent_id": [2, 1, 3, 5, 6, 7]} +{"sent_id": [4, 5, 14, 16, 28, 26]} +{"sent_id": [4, 13, 10, 0, 5, 7]} +{"sent_id": [0, 3, 13, 11, 10, 8]} +{"sent_id": [6, 0, 5, 10, 1, 7]} +{"sent_id": [5, 2, 0, 4, 10, 1]} +{"sent_id": [1, 3, 5, 2, 13, 4]} +{"sent_id": [1, 0, 9, 7, 5, 8]} +{"sent_id": [2, 3, 1, 0, 4, 7]} +{"sent_id": [1, 8, 3, 9, 2, 5]} +{"sent_id": [0, 3, 13, 2, 4, 11]} +{"sent_id": [2, 8, 1, 4, 3, 9]} +{"sent_id": [3, 5, 18, 10, 2, 0]} +{"sent_id": [2, 3, 4, 11, 0, 1]} +{"sent_id": [3, 2, 5, 6, 9, 4]} +{"sent_id": [2, 3, 0, 11, 1, 4]} +{"sent_id": [13, 0, 5, 6, 11, 8]} +{"sent_id": [3, 4, 1, 2, 9, 10]} +{"sent_id": [1, 16, 4, 2, 0, 6]} +{"sent_id": [1, 2, 5, 14, 13, 4]} +{"sent_id": [2, 4, 5, 1, 3, 6]} +{"sent_id": [1, 2, 4, 7, 0, 8]} +{"sent_id": [3, 0, 13, 5, 1, 12]} +{"sent_id": [9, 5, 4, 6, 3, 1]} +{"sent_id": [4, 3, 1, 0, 2, 6]} +{"sent_id": [2, 4, 3, 11, 0, 1]} +{"sent_id": [1, 4, 2, 0, 14, 3]} +{"sent_id": [2, 7, 1, 3, 10, 6]} +{"sent_id": [1, 2, 4, 7, 17, 3]} +{"sent_id": [13, 4, 3, 1, 2, 5]} +{"sent_id": [3, 6, 17, 11, 8, 18]} +{"sent_id": [3, 2, 0, 1, 4, 5]} +{"sent_id": [3, 1, 2, 0, 4, 6]} +{"sent_id": [1, 2, 4, 10, 8, 11]} +{"sent_id": [1, 2, 4, 9, 3, 8]} +{"sent_id": [1, 2, 8, 7, 6, 4]} +{"sent_id": [9, 1, 8, 2, 13, 4]} +{"sent_id": [1, 4, 5, 10, 3, 6]} +{"sent_id": [3, 1, 7, 2, 6, 0]} +{"sent_id": [1, 0, 2, 3, 5, 4]} +{"sent_id": [5, 1, 2, 3, 6, 0]} +{"sent_id": [3, 2, 1, 9, 8, 0]} +{"sent_id": [4, 5, 0, 6, 1, 2]} +{"sent_id": [4, 1, 3, 2, 9, 7]} +{"sent_id": [5, 13, 1, 2, 6, 3]} +{"sent_id": [2, 4, 10, 0, 3, 13]} +{"sent_id": [1, 2, 4, 7, 5, 9]} +{"sent_id": [2, 3, 1, 7, 0, 8]} +{"sent_id": [3, 4, 1, 12, 2, 5]} +{"sent_id": [0, 1, 10, 4, 2, 5]} +{"sent_id": [3, 5, 4, 10, 0, 1]} +{"sent_id": [0, 2, 3, 8, 5, 9]} +{"sent_id": [1, 2, 12, 8, 0, 5]} +{"sent_id": [6, 14, 0, 13, 2, 15]} +{"sent_id": [4, 5, 2, 6, 1, 0]} +{"sent_id": [1, 2, 3, 5, 4, 6]} +{"sent_id": [1, 3, 4, 6, 9, 2]} +{"sent_id": [4, 3, 5, 8, 12, 0]} +{"sent_id": [0, 4, 3, 2, 6, 10]} +{"sent_id": [1, 6, 2, 4, 3, 5]} +{"sent_id": [6, 0, 4, 5, 9, 13]} +{"sent_id": [0, 8, 6, 1, 5, 15]} +{"sent_id": [0, 10, 1, 8, 2, 11]} +{"sent_id": [3, 1, 11, 12, 2, 0]} +{"sent_id": [4, 1, 0, 5, 9, 18]} +{"sent_id": [3, 2, 8, 0, 1, 6]} +{"sent_id": [3, 1, 0, 8, 2, 7]} +{"sent_id": [1, 2, 3, 6, 4, 9]} +{"sent_id": [1, 4, 2, 16, 3, 0]} +{"sent_id": [2, 5, 4, 0, 3, 7]} +{"sent_id": [7, 1, 11, 3, 2, 4]} +{"sent_id": [2, 4, 7, 0, 9, 8]} +{"sent_id": [1, 2, 4, 0, 5, 3]} +{"sent_id": [2, 7, 8, 0, 1, 6]} +{"sent_id": [3, 4, 0, 1, 14, 2]} +{"sent_id": [2, 1, 3, 0, 6, 7]} +{"sent_id": [1, 2, 0, 4, 5, 8]} +{"sent_id": [1, 4, 11, 10, 2, 8]} +{"sent_id": [3, 12, 2, 1, 13, 10]} +{"sent_id": [3, 9, 10, 4, 11, 1]} +{"sent_id": [1, 3, 11, 5, 14, 2]} +{"sent_id": [4, 3, 1, 2, 5, 11]} +{"sent_id": [1, 5, 7, 3, 0, 4]} +{"sent_id": [1, 3, 10, 11, 12, 5]} +{"sent_id": [3, 1, 9, 2, 0, 5]} +{"sent_id": [3, 4, 2, 15, 1, 11]} +{"sent_id": [0, 1, 2, 15, 3, 11]} +{"sent_id": [1, 2, 4, 8, 13, 3]} +{"sent_id": [3, 2, 1, 4, 0, 11]} +{"sent_id": [1, 7, 2, 13, 0, 8]} +{"sent_id": [1, 7, 2, 6, 3, 10]} +{"sent_id": [1, 4, 2, 3, 8, 7]} +{"sent_id": [3, 0, 1, 12, 2, 4]} +{"sent_id": [2, 3, 1, 5, 0, 10]} +{"sent_id": [3, 11, 2, 4, 1, 14]} +{"sent_id": [3, 4, 1, 0, 2, 5]} +{"sent_id": [3, 9, 4, 8, 13, 10]} +{"sent_id": [2, 3, 0, 1, 4, 5]} +{"sent_id": [5, 4, 2, 6, 1, 8]} +{"sent_id": [0, 13, 4, 3, 5, 8]} +{"sent_id": [1, 4, 5, 8, 0, 9]} +{"sent_id": [1, 4, 5, 3, 2, 0]} +{"sent_id": [2, 3, 0, 5, 1, 4]} +{"sent_id": [3, 4, 5, 2, 6, 15]} +{"sent_id": [3, 0, 1, 2, 5, 4]} +{"sent_id": [2, 1, 5, 3, 6, 4]} +{"sent_id": [0, 1, 9, 4, 3, 11]} +{"sent_id": [1, 2, 12, 3, 6, 5]} +{"sent_id": [4, 10, 2, 9, 3, 5]} +{"sent_id": [0, 2, 3, 1, 5, 4]} +{"sent_id": [4, 3, 9, 8, 11, 16]} +{"sent_id": [1, 0, 4, 2, 8, 5]} +{"sent_id": [2, 5, 0, 3, 4, 6]} +{"sent_id": [14, 2, 1, 0, 9, 10]} +{"sent_id": [2, 5, 3, 0, 1, 16]} +{"sent_id": [1, 3, 2, 5, 4, 6]} +{"sent_id": [0, 1, 2, 3, 5, 4]} +{"sent_id": [1, 2, 3, 9, 4, 5]} +{"sent_id": [12, 0, 3, 2, 1, 4]} +{"sent_id": [0, 1, 9, 6, 7, 3]} +{"sent_id": [2, 0, 3, 15, 1, 6]} +{"sent_id": [1, 2, 10, 3, 4, 22]} +{"sent_id": [2, 1, 5, 8, 7, 11]} +{"sent_id": [1, 4, 3, 2, 0, 6]} +{"sent_id": [3, 2, 4, 15, 1, 16]} +{"sent_id": [4, 1, 3, 2, 5, 6]} +{"sent_id": [1, 2, 4, 8, 6, 0]} +{"sent_id": [2, 4, 0, 1, 5, 3]} +{"sent_id": [0, 1, 15, 3, 2, 14]} +{"sent_id": [2, 3, 5, 7, 4, 6]} +{"sent_id": [0, 1, 2, 13, 5, 17]} +{"sent_id": [1, 5, 4, 2, 6, 0]} +{"sent_id": [14, 4, 0, 15, 13, 16]} +{"sent_id": [13, 5, 14, 2, 1, 3]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [0, 1, 3, 2, 4, 16]} +{"sent_id": [5, 1, 3, 15, 4, 8]} +{"sent_id": [0, 5, 17, 3, 4, 6]} +{"sent_id": [0, 5, 1, 4, 3, 19]} +{"sent_id": [1, 2, 4, 15, 10, 3]} +{"sent_id": [1, 10, 15, 8, 2, 3]} +{"sent_id": [2, 0, 3, 1, 4, 5]} +{"sent_id": [3, 5, 4, 1, 18, 0]} +{"sent_id": [0, 2, 9, 4, 1, 6]} +{"sent_id": [9, 11, 10, 2, 3, 1]} +{"sent_id": [2, 4, 1, 5, 10, 15]} +{"sent_id": [1, 9, 4, 10, 7, 3]} +{"sent_id": [2, 4, 1, 5, 11, 8]} +{"sent_id": [4, 2, 8, 0, 5, 7]} +{"sent_id": [3, 8, 4, 5, 10, 11]} +{"sent_id": [1, 13, 2, 4, 5, 0]} +{"sent_id": [1, 2, 5, 11, 10, 0]} +{"sent_id": [0, 1, 6, 4, 2, 15]} +{"sent_id": [1, 0, 2, 5, 7, 3]} +{"sent_id": [0, 13, 5, 1, 12, 4]} +{"sent_id": [3, 2, 4, 11, 1, 5]} +{"sent_id": [4, 6, 2, 3, 10, 5]} +{"sent_id": [2, 1, 5, 4, 6, 7]} +{"sent_id": [4, 1, 3, 0, 10, 9]} +{"sent_id": [6, 4, 2, 13, 5, 1]} +{"sent_id": [1, 9, 8, 20, 10, 3]} +{"sent_id": [2, 3, 11, 7, 15, 10]} +{"sent_id": [6, 0, 3, 2, 15, 12]} +{"sent_id": [4, 2, 10, 3, 1, 7]} +{"sent_id": [2, 3, 8, 7, 4, 6]} +{"sent_id": [9, 3, 1, 0, 7, 10]} +{"sent_id": [1, 14, 4, 2, 7, 5]} +{"sent_id": [4, 7, 5, 12, 1, 2]} +{"sent_id": [3, 4, 1, 16, 2, 0]} +{"sent_id": [5, 10, 14, 9, 6, 4]} +{"sent_id": [3, 2, 1, 0, 4, 7]} +{"sent_id": [1, 3, 2, 5, 10, 4]} +{"sent_id": [2, 1, 3, 4, 13, 5]} +{"sent_id": [3, 4, 1, 0, 17, 16]} +{"sent_id": [3, 9, 4, 0, 10, 2]} +{"sent_id": [2, 4, 3, 7, 0, 15]} +{"sent_id": [18, 9, 8, 2, 0, 5]} +{"sent_id": [3, 13, 2, 14, 7, 5]} +{"sent_id": [18, 7, 1, 10, 4, 11]} +{"sent_id": [1, 2, 4, 5, 11, 0]} +{"sent_id": [9, 4, 0, 2, 6, 7]} +{"sent_id": [1, 2, 11, 3, 6, 4]} +{"sent_id": [4, 2, 5, 11, 12, 3]} +{"sent_id": [2, 0, 7, 3, 10, 6]} +{"sent_id": [6, 1, 3, 8, 7, 4]} +{"sent_id": [1, 3, 2, 13, 11, 10]} +{"sent_id": [3, 12, 11, 4, 2, 0]} +{"sent_id": [1, 2, 6, 0, 7, 9]} +{"sent_id": [1, 2, 0, 4, 12, 13]} +{"sent_id": [2, 3, 15, 4, 0, 1]} +{"sent_id": [0, 6, 1, 5, 4, 8]} +{"sent_id": [0, 14, 6, 3, 2, 13]} +{"sent_id": [0, 1, 2]} +{"sent_id": [3, 4, 5, 2, 1, 6]} +{"sent_id": [9, 8, 1, 3, 6, 5]} +{"sent_id": [1, 2, 9, 4, 5, 17]} +{"sent_id": [1, 2, 0, 3, 5, 7]} +{"sent_id": [1, 3, 0, 10, 2, 13]} +{"sent_id": [1, 6, 4, 2, 3, 5]} +{"sent_id": [1, 2, 3, 10, 5, 4]} +{"sent_id": [3, 6, 0, 2, 16, 8]} +{"sent_id": [2, 1, 0, 3, 10, 15]} +{"sent_id": [5, 4, 1, 11, 2, 7]} +{"sent_id": [3, 8, 2, 4, 1, 5]} +{"sent_id": [1, 2, 5, 0, 3, 10]} +{"sent_id": [2, 0, 1, 4, 6, 8]} +{"sent_id": [1, 3, 4, 8, 10, 5]} +{"sent_id": [10, 4, 5, 2, 0, 1]} +{"sent_id": [3, 9, 2, 4, 5, 13]} +{"sent_id": [2, 4, 5, 3, 11, 14]} +{"sent_id": [9, 3, 4, 2, 1, 6]} +{"sent_id": [2, 4, 12, 0, 5, 3]} +{"sent_id": [1, 4, 9, 2, 6, 8]} +{"sent_id": [3, 10, 11, 0, 2, 7]} +{"sent_id": [0, 6, 1, 3, 2, 4]} +{"sent_id": [4, 1, 2, 14, 0, 6]} +{"sent_id": [6, 0, 10, 5, 7, 8]} +{"sent_id": [1, 4, 3, 6, 2, 5]} +{"sent_id": [8, 15, 5, 0, 11, 17]} +{"sent_id": [4, 3, 2, 1, 7, 5]} +{"sent_id": [1, 2, 3, 4, 6, 5]} +{"sent_id": [1, 4, 0, 5, 9, 11]} +{"sent_id": [1, 0, 3, 2, 6, 5]} +{"sent_id": [2, 1, 0, 4, 7, 10]} +{"sent_id": [2, 1, 3, 6, 10, 0]} +{"sent_id": [3, 7, 8, 1, 2, 4]} +{"sent_id": [1, 2, 7, 0, 6, 3]} +{"sent_id": [3, 2, 1, 0, 8, 6]} +{"sent_id": [2, 1, 4, 14, 0, 5]} +{"sent_id": [1, 4, 3, 2, 8, 0]} +{"sent_id": [4, 0, 9, 14, 1, 13]} +{"sent_id": [0, 3, 1, 2, 5, 12]} +{"sent_id": [0, 9, 4, 11, 1, 3]} +{"sent_id": [2, 9, 3, 10, 4, 0]} +{"sent_id": [2, 0, 3, 8, 7, 14]} +{"sent_id": [1, 6, 5, 7, 4, 2]} +{"sent_id": [1, 8, 11, 0, 4, 3]} +{"sent_id": [1, 2, 3, 5, 4, 7]} +{"sent_id": [0, 2, 1, 11, 9, 5]} +{"sent_id": [3, 1, 2, 7, 4, 0]} +{"sent_id": [12, 1, 3, 13, 2, 6]} +{"sent_id": [5, 6, 1, 0, 2, 3]} +{"sent_id": [4, 3, 1, 6, 5, 7]} +{"sent_id": [3, 4, 12, 1, 0, 9]} +{"sent_id": [1, 5, 9, 14, 13, 11]} +{"sent_id": [2, 3, 6, 7, 8, 11]} +{"sent_id": [7, 0, 6, 2, 3, 4]} +{"sent_id": [2, 1, 8, 0, 9, 4]} +{"sent_id": [3, 1, 12, 10, 2, 5]} +{"sent_id": [1, 5, 7, 15, 6, 0]} +{"sent_id": [3, 4, 2, 5, 1, 0]} +{"sent_id": [11, 1, 3, 10, 0, 2]} +{"sent_id": [0, 3, 16, 17, 18, 2]} +{"sent_id": [1, 2, 18, 3, 13, 10]} +{"sent_id": [1, 2, 0, 16, 3, 5]} +{"sent_id": [4, 1, 12, 5, 2, 0]} +{"sent_id": [5, 1, 6, 2, 3, 7]} +{"sent_id": [2, 3, 0, 7, 4, 1]} +{"sent_id": [2, 0, 14, 3, 4, 7]} +{"sent_id": [1, 3, 10, 5, 13, 11]} +{"sent_id": [2, 3, 4, 0, 1, 6]} +{"sent_id": [2, 3, 1, 5, 7, 4]} +{"sent_id": [0, 1, 3, 5, 12, 2]} +{"sent_id": [1, 2, 6, 4, 3, 0]} +{"sent_id": [2, 4, 5, 3, 0, 1]} +{"sent_id": [1, 3, 2, 4, 5, 7]} +{"sent_id": [1, 2, 5, 12, 3, 11]} +{"sent_id": [1, 2, 0, 10, 6, 4]} +{"sent_id": [1, 2, 3, 5, 0, 7]} +{"sent_id": [2, 3, 1, 11, 12, 6]} +{"sent_id": [1, 14, 2, 11, 6, 5]} +{"sent_id": [1, 11, 2, 7, 0, 9]} +{"sent_id": [2, 3, 1, 0, 11, 6]} +{"sent_id": [0, 2, 1, 3, 4]} +{"sent_id": [1, 2, 3, 7, 6, 5]} +{"sent_id": [4, 1, 12, 2, 15, 3]} +{"sent_id": [3, 2, 0, 13, 4, 1]} +{"sent_id": [1, 7, 2, 3, 6, 0]} +{"sent_id": [13, 3, 0, 1, 4, 2]} +{"sent_id": [1, 3, 2, 5, 4, 12]} +{"sent_id": [3, 4, 2, 1, 6, 5]} +{"sent_id": [1, 6, 3, 0, 2, 14]} +{"sent_id": [1, 2, 4, 0, 3, 13]} +{"sent_id": [1, 3, 0, 8, 12, 13]} +{"sent_id": [3, 0, 2, 1, 13, 4]} +{"sent_id": [3, 1, 2, 13, 7, 0]} +{"sent_id": [2, 3, 0, 4, 16, 8]} +{"sent_id": [2, 11, 4, 1, 0, 8]} +{"sent_id": [1, 2, 7, 3, 14, 9]} +{"sent_id": [0, 1, 3, 10, 9, 7]} +{"sent_id": [3, 1, 12, 4, 0, 2]} +{"sent_id": [0, 12, 13, 4, 1, 2]} +{"sent_id": [3, 1, 2, 0, 6, 14]} +{"sent_id": [3, 8, 1, 4, 5, 2]} +{"sent_id": [1, 9, 3, 2, 6, 10]} +{"sent_id": [1, 3, 2, 6, 8, 10]} +{"sent_id": [1, 10, 11, 5, 3, 4]} +{"sent_id": [8, 3, 0, 1, 5, 2]} +{"sent_id": [3, 2, 1, 0, 11, 7]} +{"sent_id": [1, 2, 0, 10, 9, 5]} +{"sent_id": [2, 13, 6, 1, 3, 0]} +{"sent_id": [3, 4, 16, 2, 5, 10]} +{"sent_id": [0, 1, 3, 5, 13, 15]} +{"sent_id": [1, 3, 4, 2, 5, 15]} +{"sent_id": [3, 1, 2, 0, 6, 9]} +{"sent_id": [3, 2, 8, 9, 7, 6]} +{"sent_id": [14, 4, 0, 5, 1, 3]} +{"sent_id": [12, 1, 0, 3, 2, 6]} +{"sent_id": [3, 1, 6, 0, 2, 5]} +{"sent_id": [10, 1, 11, 2, 13, 0]} +{"sent_id": [1, 0, 2, 3, 5, 4]} +{"sent_id": [1, 2, 4, 3, 0, 6]} +{"sent_id": [1, 2, 3, 5, 6, 0]} +{"sent_id": [1, 3, 2, 0, 4, 12]} +{"sent_id": [3, 5, 4, 2, 6, 7]} +{"sent_id": [10, 3, 4, 12, 11, 16]} +{"sent_id": [2, 3, 4, 0, 5, 13]} +{"sent_id": [2, 8, 3, 4, 7, 6]} +{"sent_id": [0, 13, 2, 3, 4, 7]} +{"sent_id": [3, 1, 7, 5, 9, 4]} +{"sent_id": [1, 2, 4, 8, 0, 3]} +{"sent_id": [1, 3, 5, 9, 4, 2]} +{"sent_id": [4, 3, 1, 6, 16, 17]} +{"sent_id": [9, 1, 0, 4, 2, 3]} +{"sent_id": [3, 0, 2, 1, 10, 9]} +{"sent_id": [2, 1, 4, 5, 14, 13]} +{"sent_id": [1, 3, 2, 4, 6, 8]} +{"sent_id": [1, 2, 4, 3, 7, 9]} +{"sent_id": [0, 13, 1, 4, 3, 6]} +{"sent_id": [1, 2, 9, 14, 0, 17]} +{"sent_id": [1, 0, 4, 5, 3, 2]} +{"sent_id": [1, 13, 2, 11, 4, 12]} +{"sent_id": [2, 5, 3, 11, 6, 0]} +{"sent_id": [2, 1, 3, 8, 6, 11]} +{"sent_id": [5, 4, 11, 0, 12, 2]} +{"sent_id": [17, 7, 5, 12, 13, 1]} +{"sent_id": [0, 3, 1, 6, 2, 9]} +{"sent_id": [0, 1, 2, 12, 13, 3]} +{"sent_id": [3, 4, 9, 2, 10, 5]} +{"sent_id": [3, 1, 0, 4, 2, 11]} +{"sent_id": [13, 0, 3, 2, 4, 5]} +{"sent_id": [0, 1, 2, 3, 8, 4]} +{"sent_id": [1, 2, 3, 4, 0, 11]} +{"sent_id": [1, 4, 2, 0, 8, 5]} +{"sent_id": [4, 0, 1, 2, 3, 5]} +{"sent_id": [3, 1, 9, 0, 2, 4]} +{"sent_id": [3, 2, 1, 11, 12, 6]} +{"sent_id": [10, 3, 1, 4, 2, 14]} +{"sent_id": [7, 0, 1, 2, 20, 4]} +{"sent_id": [4, 0, 1, 8, 17, 2]} +{"sent_id": [2, 3, 9, 0, 13, 10]} +{"sent_id": [3, 17, 18, 19, 5, 13]} +{"sent_id": [2, 1, 3, 5, 9, 0]} +{"sent_id": [3, 7, 1, 2, 13, 8]} +{"sent_id": [1, 9, 3, 11, 4, 10]} +{"sent_id": [2, 1, 3, 5, 6, 7]} +{"sent_id": [9, 3, 0, 5, 4, 8]} +{"sent_id": [3, 1, 2, 13, 11, 14]} +{"sent_id": [4, 0, 6, 3, 1, 12]} +{"sent_id": [3, 1, 10, 5, 2, 4]} +{"sent_id": [7, 8, 10, 9, 0, 1]} +{"sent_id": [5, 2, 0, 3, 16, 8]} +{"sent_id": [2, 3, 4, 5, 14, 8]} +{"sent_id": [10, 14, 3, 4, 18, 1]} +{"sent_id": [3, 1, 11, 2, 15, 9]} +{"sent_id": [7, 8, 15, 4, 3, 12]} +{"sent_id": [3, 2, 5, 4, 0, 8]} +{"sent_id": [3, 5, 13, 2, 7, 6]} +{"sent_id": [3, 0, 2, 1, 6, 5]} +{"sent_id": [1, 2, 13, 3, 14, 0]} +{"sent_id": [0, 1, 4, 5, 14, 7]} +{"sent_id": [3, 0, 1, 16, 15, 2]} +{"sent_id": [4, 2, 1, 13, 6, 12]} +{"sent_id": [4, 1, 3, 5, 7, 15]} +{"sent_id": [2, 6, 4, 1, 12, 9]} +{"sent_id": [1, 2, 3, 10, 0, 4]} +{"sent_id": [1, 0, 17, 4, 2, 12]} +{"sent_id": [2, 1, 4, 0, 3, 21]} +{"sent_id": [0, 4, 3, 19, 18, 1]} +{"sent_id": [1, 6, 7, 0, 11, 12]} +{"sent_id": [1, 2, 4, 13, 0, 5]} +{"sent_id": [3, 4, 2, 0, 1, 15]} +{"sent_id": [1, 2, 4, 5, 0, 13]} +{"sent_id": [0, 13, 11, 1, 3, 2]} +{"sent_id": [2, 5, 3, 4, 7, 6]} +{"sent_id": [0, 4, 6, 7, 5, 12]} +{"sent_id": [5, 0, 19, 20, 7, 24]} +{"sent_id": [2, 1, 4, 7, 5, 6]} +{"sent_id": [1, 5, 3, 11, 4, 7]} +{"sent_id": [0, 2, 3, 9, 1, 5]} +{"sent_id": [0, 1, 9, 3, 7, 5]} +{"sent_id": [4, 3, 0, 2, 7, 6]} +{"sent_id": [4, 0, 1, 2, 8, 7]} +{"sent_id": [5, 6, 16, 4, 3, 15]} +{"sent_id": [12, 0, 1, 13, 11, 2]} +{"sent_id": [3, 2, 0, 1, 8, 12]} +{"sent_id": [3, 12, 0, 13, 1, 2]} +{"sent_id": [9, 12, 4, 0, 17, 7]} +{"sent_id": [3, 0, 5, 4, 1, 8]} +{"sent_id": [3, 0, 1, 6, 2, 5]} +{"sent_id": [1, 2, 0, 11, 6, 4]} +{"sent_id": [2, 11, 10, 3, 4, 7]} +{"sent_id": [1, 0, 3, 11, 6, 4]} +{"sent_id": [4, 3, 2, 7, 13, 0]} +{"sent_id": [1, 4, 3, 2, 0, 6]} +{"sent_id": [12, 4, 3, 2, 1, 7]} +{"sent_id": [3, 1, 4, 8, 2, 9]} +{"sent_id": [2, 1, 11, 8, 14, 7]} +{"sent_id": [3, 4, 8, 2, 5, 0]} +{"sent_id": [0, 10, 5, 4, 15, 3]} +{"sent_id": [2, 5, 6, 0, 11, 12]} +{"sent_id": [0, 6, 17, 10, 1, 5]} +{"sent_id": [1, 2, 0, 4, 5, 6]} +{"sent_id": [1, 10, 4, 2, 11, 7]} +{"sent_id": [1, 2, 4, 5, 19, 15]} +{"sent_id": [1, 0, 2, 12, 3, 11]} +{"sent_id": [3, 0, 4, 1, 15, 11]} +{"sent_id": [7, 8, 1, 3, 4, 14]} +{"sent_id": [0, 2, 4, 1, 14, 5]} +{"sent_id": [1, 2, 3, 8, 0, 16]} +{"sent_id": [3, 2, 0, 4, 5, 7]} +{"sent_id": [1, 4, 2, 3, 7, 0]} +{"sent_id": [4, 3, 5, 12, 1, 2]} +{"sent_id": [4, 13, 5, 12, 11, 6]} +{"sent_id": [4, 1, 2, 3, 0, 5]} +{"sent_id": [6, 5, 3, 8, 4, 7]} +{"sent_id": [1, 2, 3, 14, 6, 4]} +{"sent_id": [4, 1, 5, 8, 17, 3]} +{"sent_id": [0, 4, 12, 1, 7, 5]} +{"sent_id": [3, 1, 0, 2, 9, 14]} +{"sent_id": [4, 1, 5, 3, 7, 6]} +{"sent_id": [3, 2, 4, 12, 11, 1]} +{"sent_id": [2, 3, 4, 6, 11, 7]} +{"sent_id": [0, 3, 1, 2, 11, 6]} +{"sent_id": [2, 16, 3, 0, 1, 10]} +{"sent_id": [1, 2, 4, 11, 9, 0]} +{"sent_id": [3, 0, 12, 1, 4, 2]} +{"sent_id": [4, 2, 12, 3, 5, 0]} +{"sent_id": [0, 1, 8, 3, 7, 2]} +{"sent_id": [3, 11, 2, 5, 1, 8]} +{"sent_id": [0, 12, 3, 13, 1, 14]} +{"sent_id": [2, 4, 11, 1, 3, 5]} +{"sent_id": [3, 2, 0, 5, 12, 14]} +{"sent_id": [3, 1, 14, 0, 4, 5]} +{"sent_id": [2, 0, 11, 1, 17, 3]} +{"sent_id": [0, 1, 2, 8, 4, 12]} +{"sent_id": [1, 13, 3, 2, 4, 5]} +{"sent_id": [0, 6, 2, 1, 4, 5]} +{"sent_id": [2, 1, 6, 0, 3, 8]} +{"sent_id": [4, 1, 2, 11, 9, 15]} +{"sent_id": [1, 3, 0, 4, 5, 9]} +{"sent_id": [2, 1, 4, 3, 5, 7]} +{"sent_id": [2, 3, 11, 9, 6, 1]} +{"sent_id": [3, 11, 1, 2, 0, 4]} +{"sent_id": [1, 2, 4, 6, 3, 5]} +{"sent_id": [5, 2, 4, 9, 8, 6]} +{"sent_id": [1, 3, 4, 0, 12, 5]} +{"sent_id": [0, 4, 5, 3, 2, 1]} +{"sent_id": [2, 3, 0, 6, 5, 4]} +{"sent_id": [4, 6, 14, 5, 13, 11]} +{"sent_id": [1, 5, 14, 8, 2, 13]} +{"sent_id": [4, 3, 0, 8, 10, 1]} +{"sent_id": [3, 1, 2, 4, 5, 12]} +{"sent_id": [4, 0, 1, 5, 17, 2]} +{"sent_id": [2, 3, 6, 8, 4, 0]} +{"sent_id": [2, 1, 0, 3, 5, 6]} +{"sent_id": [12, 3, 1, 0, 6, 2]} +{"sent_id": [4, 3, 2, 5, 9, 7]} +{"sent_id": [3, 0, 1, 2, 11, 5]} +{"sent_id": [6, 1, 10, 2, 4, 3]} +{"sent_id": [1, 3, 2, 6, 15, 12]} +{"sent_id": [3, 1, 2, 8, 0, 6]} +{"sent_id": [4, 0, 1, 8, 2, 3]} +{"sent_id": [1, 4, 3, 10, 2, 5]} +{"sent_id": [2, 11, 10, 0, 7, 1]} +{"sent_id": [1, 2, 0, 4, 5, 13]} +{"sent_id": [3, 2, 10, 8, 9, 1]} +{"sent_id": [5, 9, 8, 10, 11, 0]} +{"sent_id": [3, 2, 1, 13, 8, 4]} +{"sent_id": [2, 14, 4, 3, 5, 15]} +{"sent_id": [3, 2, 1, 9, 0, 10]} +{"sent_id": [0, 3, 4, 17, 1, 2]} +{"sent_id": [9, 5, 15, 1, 6, 4]} +{"sent_id": [3, 8, 1, 0, 10, 5]} +{"sent_id": [4, 5, 1, 6, 0, 3]} +{"sent_id": [1, 2, 4, 3, 5, 0]} +{"sent_id": [0, 3, 1, 11, 2, 9]} +{"sent_id": [3, 4, 2, 8, 7, 0]} +{"sent_id": [4, 14, 1, 15, 6, 7]} +{"sent_id": [1, 5, 2, 7, 3, 0]} +{"sent_id": [9, 3, 4, 7, 2, 8]} +{"sent_id": [1, 2, 6, 3, 10, 12]} +{"sent_id": [1, 2, 4, 0, 16, 9]} +{"sent_id": [1, 2, 3, 7, 10, 8]} +{"sent_id": [1, 2, 12, 3, 9, 6]} +{"sent_id": [2, 0, 1, 5, 6, 4]} +{"sent_id": [1, 0, 3, 2, 11, 9]} +{"sent_id": [4, 8, 13, 3, 14, 9]} +{"sent_id": [6, 2, 16, 4, 5, 10]} +{"sent_id": [2, 1, 10, 5, 4, 6]} +{"sent_id": [0, 1, 2, 4, 5, 3]} +{"sent_id": [9, 1, 2, 6, 10, 11]} +{"sent_id": [1, 4, 2, 3, 6, 5]} +{"sent_id": [4, 1, 10, 2, 3, 5]} +{"sent_id": [3, 5, 1, 4, 0, 9]} +{"sent_id": [5, 4, 7, 3, 9, 1]} +{"sent_id": [2, 6, 3, 9, 1, 7]} +{"sent_id": [3, 0, 8, 10, 1, 2]} +{"sent_id": [5, 0, 8, 4, 11, 10]} +{"sent_id": [0, 13, 4, 5, 1, 2]} +{"sent_id": [3, 4, 5, 2, 7, 6]} +{"sent_id": [3, 4, 0, 1, 2, 10]} +{"sent_id": [2, 1, 0, 7, 3, 4]} +{"sent_id": [4, 1, 0, 3, 9, 23]} +{"sent_id": [1, 0, 12, 2, 3, 22]} +{"sent_id": [3, 2, 4, 0, 1, 5]} +{"sent_id": [1, 3, 2, 0, 5, 6]} +{"sent_id": [0, 16, 3, 1, 4, 6]} +{"sent_id": [1, 2, 7, 9, 3, 5]} +{"sent_id": [2, 0, 1, 3, 4, 10]} +{"sent_id": [3, 4, 0, 1, 16, 17]} +{"sent_id": [2, 1, 0, 16, 5, 6]} +{"sent_id": [1, 2, 13, 3, 8, 11]} +{"sent_id": [4, 5, 1, 14, 8, 7]} +{"sent_id": [6, 3, 4, 1, 7, 15]} +{"sent_id": [1, 2, 4, 5, 3, 9]} +{"sent_id": [2, 1, 5, 14, 0, 15]} +{"sent_id": [0, 9, 1, 10, 8, 3]} +{"sent_id": [3, 1, 2, 4, 0, 17]} +{"sent_id": [6, 10, 1, 0, 5, 15]} +{"sent_id": [2, 4, 0, 5, 15, 1]} +{"sent_id": [1, 3, 6, 4, 5, 8]} +{"sent_id": [2, 1, 7, 6, 8, 12]} +{"sent_id": [1, 6, 2, 14, 7, 3]} +{"sent_id": [0, 4, 3, 1, 13, 12]} +{"sent_id": [4, 2, 1, 3, 6, 14]} +{"sent_id": [1, 6, 0, 2, 13, 4]} +{"sent_id": [1, 2, 3, 9, 5, 12]} +{"sent_id": [4, 5, 6, 11, 9, 7]} +{"sent_id": [3, 5, 2, 6, 7, 11]} +{"sent_id": [2, 0, 1, 4, 3, 9]} +{"sent_id": [0, 1, 3, 10, 12, 13]} +{"sent_id": [1, 2, 5, 4, 6, 13]} +{"sent_id": [1, 4, 2, 5, 3, 0]} +{"sent_id": [0, 3, 4, 11, 5, 8]} +{"sent_id": [0, 2, 3, 9, 8, 1]} +{"sent_id": [1, 7, 12, 2, 9, 19]} +{"sent_id": [3, 2, 12, 6, 5, 4]} +{"sent_id": [1, 23, 0, 2, 3, 4]} +{"sent_id": [8, 0, 2, 3, 4, 1]} +{"sent_id": [6, 2, 3, 8, 4, 7]} +{"sent_id": [3, 1, 0, 7, 4, 8]} +{"sent_id": [3, 1, 2, 0, 9, 5]} +{"sent_id": [1, 7, 0, 2, 3, 8]} +{"sent_id": [13, 5, 9, 2, 6, 3]} +{"sent_id": [0, 4, 2, 3, 7, 1]} +{"sent_id": [1, 3, 0, 13, 2, 10]} +{"sent_id": [1, 5, 3, 2, 0, 4]} +{"sent_id": [0, 1, 2, 10, 16, 3]} +{"sent_id": [1, 4, 2, 5, 0, 3]} +{"sent_id": [3, 2, 0, 1, 4]} +{"sent_id": [2, 1, 6, 4, 5, 0]} +{"sent_id": [2, 4, 11, 0, 3, 5]} +{"sent_id": [4, 2, 15, 3, 1, 18]} +{"sent_id": [3, 4, 0, 5, 13, 1]} +{"sent_id": [1, 2, 7, 0, 10, 8]} +{"sent_id": [1, 9, 15, 10, 8, 5]} +{"sent_id": [3, 6, 10, 4, 7, 8]} +{"sent_id": [3, 11, 2, 5, 4, 10]} +{"sent_id": [2, 3, 4, 6, 0, 5]} +{"sent_id": [4, 0, 1, 2, 6, 7]} +{"sent_id": [3, 1, 0, 14, 8, 11]} +{"sent_id": [9, 10, 11, 13, 24, 0]} +{"sent_id": [1, 2, 7, 5, 0, 10]} +{"sent_id": [4, 16, 1, 3, 17, 8]} +{"sent_id": [2, 4, 5, 6, 8, 1]} +{"sent_id": [1, 3, 27, 2, 26, 25]} +{"sent_id": [6, 2, 5, 3, 1, 8]} +{"sent_id": [3, 8, 4, 2, 5, 7]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [3, 0, 1, 2, 4, 7]} +{"sent_id": [1, 3, 0, 5, 7, 6]} +{"sent_id": [8, 4, 1, 9, 11, 6]} +{"sent_id": [2, 1, 3, 4, 9, 6]} +{"sent_id": [1, 2, 6, 0, 5, 8]} +{"sent_id": [2, 8, 3, 7, 6, 4]} +{"sent_id": [10, 2, 5, 3, 1, 6]} +{"sent_id": [7, 14, 13, 8, 9, 11]} +{"sent_id": [1, 2, 11, 5, 6, 4]} +{"sent_id": [0, 16, 5, 2, 15, 4]} +{"sent_id": [1, 2, 0, 4, 3, 5]} +{"sent_id": [4, 15, 3, 6, 12, 5]} +{"sent_id": [3, 2, 4, 1, 0, 5]} +{"sent_id": [1, 3, 4, 2, 6, 7]} +{"sent_id": [3, 6, 4, 9, 7, 1]} +{"sent_id": [11, 1, 2, 0, 3, 5]} +{"sent_id": [2, 1, 6, 7, 0, 9]} +{"sent_id": [0, 17, 11, 10, 5, 6]} +{"sent_id": [1, 4, 11, 2, 0, 6]} +{"sent_id": [0, 3, 5, 4, 1, 6]} +{"sent_id": [3, 1, 0, 5, 4, 2]} +{"sent_id": [2, 1, 5, 6, 4, 9]} +{"sent_id": [0, 1, 4, 2, 5, 3]} +{"sent_id": [4, 1, 6, 5, 0, 3]} +{"sent_id": [1, 3, 4, 2, 13, 0]} +{"sent_id": [3, 2, 1, 4, 5, 8]} +{"sent_id": [11, 5, 0, 10, 8, 7]} +{"sent_id": [3, 1, 8, 11, 2, 9]} +{"sent_id": [13, 11, 10, 0, 15, 2]} +{"sent_id": [7, 14, 2, 3, 4, 0]} +{"sent_id": [2, 4, 3, 5, 1, 8]} +{"sent_id": [1, 2, 4, 16, 6, 17]} +{"sent_id": [1, 3, 16, 14, 0, 19]} +{"sent_id": [1, 4, 2, 3, 9, 8]} +{"sent_id": [0, 6, 11, 2, 3, 5]} +{"sent_id": [2, 3, 1, 5, 4, 7]} +{"sent_id": [3, 7, 1, 2, 0, 16]} +{"sent_id": [14, 3, 1, 0, 2, 6]} +{"sent_id": [0, 2, 15, 3, 9, 17]} +{"sent_id": [1, 2, 6, 13, 4, 3]} +{"sent_id": [1, 8, 0, 3, 7, 4]} +{"sent_id": [3, 2, 4, 9, 5, 0]} +{"sent_id": [7, 2, 1, 0, 4, 3]} +{"sent_id": [0, 8, 10, 7, 3, 9]} +{"sent_id": [1, 2, 3, 7, 6, 4]} +{"sent_id": [3, 4, 2, 0, 7, 5]} +{"sent_id": [1, 0, 3, 5, 2, 7]} +{"sent_id": [2, 1, 5, 9, 8, 0]} +{"sent_id": [1, 4, 5, 6, 2, 7]} +{"sent_id": [1, 3, 4, 5, 9, 7]} +{"sent_id": [5, 13, 1, 6, 3, 4]} +{"sent_id": [2, 6, 1, 7, 0, 10]} +{"sent_id": [3, 11, 2, 5, 0, 12]} +{"sent_id": [0, 7, 14, 19, 1, 5]} +{"sent_id": [1, 2, 3, 4, 5, 6]} +{"sent_id": [2, 0, 4, 5, 3, 1]} +{"sent_id": [3, 0, 2, 1, 13, 8]} +{"sent_id": [3, 11, 1, 4, 10, 2]} +{"sent_id": [2, 1, 4, 5, 3, 0]} +{"sent_id": [4, 2, 0, 8, 1, 5]} +{"sent_id": [1, 0, 3, 11, 2, 4]} +{"sent_id": [2, 13, 0, 4, 1, 3]} +{"sent_id": [1, 6, 4, 2, 0, 5]} +{"sent_id": [1, 6, 3, 5, 8, 16]} +{"sent_id": [4, 2, 11, 1, 0, 3]} +{"sent_id": [4, 0, 16, 17, 3, 1]} +{"sent_id": [2, 1, 5, 6, 11, 0]} +{"sent_id": [1, 4, 2, 5, 0, 3]} +{"sent_id": [1, 2, 0, 13, 6, 7]} +{"sent_id": [11, 7, 3, 6, 10, 0]} +{"sent_id": [0, 1, 2, 4, 3, 8]} +{"sent_id": [1, 0, 3, 2, 4, 8]} +{"sent_id": [1, 4, 3, 2, 0, 11]} +{"sent_id": [0, 2, 1, 7, 3, 9]} +{"sent_id": [0, 1, 4, 2, 3, 7]} +{"sent_id": [3, 2, 0, 4, 10, 1]} +{"sent_id": [2, 5, 6, 8, 4, 1]} +{"sent_id": [0, 1, 5, 10, 4, 6]} +{"sent_id": [3, 1, 2, 9, 10, 4]} +{"sent_id": [3, 2, 4, 16, 1, 17]} +{"sent_id": [1, 2, 8, 6, 3, 5]} +{"sent_id": [2, 3, 4, 0, 13, 5]} +{"sent_id": [2, 3, 5, 6, 4, 11]} +{"sent_id": [1, 9, 4, 2, 0, 5]} +{"sent_id": [1, 2, 5, 4, 3, 15]} +{"sent_id": [1, 3, 4, 2, 8, 6]} +{"sent_id": [1, 4, 11, 2, 3, 5]} +{"sent_id": [4, 1, 2, 5, 6, 3]} +{"sent_id": [3, 2, 4, 7, 1, 6]} +{"sent_id": [0, 8, 16, 4, 11, 9]} +{"sent_id": [4, 3, 5, 6, 7, 8]} +{"sent_id": [3, 9, 15, 0, 2, 1]} +{"sent_id": [4, 0, 7, 5, 1, 6]} +{"sent_id": [1, 4, 0, 3, 7, 8]} +{"sent_id": [1, 9, 2, 8, 3, 5]} +{"sent_id": [1, 3, 2, 0, 14, 4]} +{"sent_id": [1, 4, 11, 2, 3, 10]} +{"sent_id": [3, 5, 1, 2, 7, 0]} +{"sent_id": [1, 7, 6, 0, 9, 5]} +{"sent_id": [15, 5, 4, 1, 3, 8]} +{"sent_id": [1, 0, 2, 3, 8, 7]} +{"sent_id": [0, 2, 1, 5, 9, 3]} +{"sent_id": [0, 2, 1, 7, 5, 10]} +{"sent_id": [2, 4, 3, 9, 1, 10]} +{"sent_id": [1, 0, 8, 6, 5, 13]} +{"sent_id": [2, 1, 0, 4, 13, 3]} +{"sent_id": [1, 2, 6, 7, 5, 4]} +{"sent_id": [1, 2, 3, 9, 4, 0]} +{"sent_id": [4, 14, 2, 3, 1, 9]} +{"sent_id": [3, 2, 0, 1, 6, 15]} +{"sent_id": [1, 9, 11, 5, 3, 16]} +{"sent_id": [3, 10, 14, 2, 9, 5]} +{"sent_id": [2, 3, 8, 1, 0, 7]} +{"sent_id": [1, 2, 0, 15, 4, 11]} +{"sent_id": [4, 5, 1, 0, 9, 18]} +{"sent_id": [0, 5, 4, 1, 9, 3]} +{"sent_id": [16, 15, 5, 10, 2, 4]} +{"sent_id": [3, 1, 4, 0, 2, 13]} +{"sent_id": [1, 3, 11, 2, 9, 4]} +{"sent_id": [2, 1, 5, 7, 3, 6]} +{"sent_id": [10, 5, 7, 3, 9, 4]} +{"sent_id": [1, 5, 2, 6, 0, 4]} +{"sent_id": [2, 1, 4, 5, 3, 9]} +{"sent_id": [13, 1, 19, 2, 3, 12]} +{"sent_id": [0, 3, 2, 5, 7, 4]} +{"sent_id": [6, 4, 11, 1, 10, 0]} +{"sent_id": [8, 3, 10, 5, 2, 4]} +{"sent_id": [7, 0, 8, 6, 3, 1]} +{"sent_id": [3, 0, 4, 1, 2, 6]} +{"sent_id": [1, 4, 2, 11, 13, 8]} +{"sent_id": [2, 4, 5, 3, 8, 11]} +{"sent_id": [1, 2, 6, 3, 5, 7]} +{"sent_id": [3, 16, 2, 1, 8, 5]} +{"sent_id": [3, 0, 5, 7, 14, 4]} +{"sent_id": [2, 4, 11, 1, 0, 9]} +{"sent_id": [1, 2, 4, 8, 5, 7]} +{"sent_id": [1, 2, 8, 17, 9, 18]} +{"sent_id": [6, 1, 2, 10, 0, 9]} +{"sent_id": [0, 1, 4, 3, 5, 10]} +{"sent_id": [1, 3, 2, 4, 6, 0]} +{"sent_id": [1, 2, 6, 7, 13, 3]} +{"sent_id": [3, 4, 2, 10, 6, 12]} +{"sent_id": [3, 4, 16, 14, 0, 2]} +{"sent_id": [3, 4, 1, 2, 5, 6]} +{"sent_id": [1, 6, 18, 7, 10, 2]} +{"sent_id": [1, 0, 11, 5, 12, 6]} +{"sent_id": [2, 6, 7, 23, 0, 13]} +{"sent_id": [4, 5, 8, 0, 7, 14]} +{"sent_id": [11, 6, 3, 0, 1, 5]} +{"sent_id": [3, 6, 4, 9, 7, 2]} +{"sent_id": [3, 1, 12, 6, 4, 2]} +{"sent_id": [1, 2, 3, 4, 10, 6]} +{"sent_id": [2, 3, 4, 5, 9, 6]} +{"sent_id": [0, 4, 6, 8, 3, 2]} +{"sent_id": [1, 9, 2, 10, 3, 13]} +{"sent_id": [1, 4, 2, 3, 8, 10]} +{"sent_id": [1, 0, 3, 6, 8, 5]} +{"sent_id": [5, 6, 10, 1, 16, 7]} +{"sent_id": [4, 5, 1, 16, 0, 3]} +{"sent_id": [15, 0, 12, 6, 1, 7]} +{"sent_id": [7, 6, 12, 3, 2, 8]} +{"sent_id": [1, 3, 8, 0, 12, 4]} +{"sent_id": [2, 4, 5, 3, 7, 1]} +{"sent_id": [1, 3, 4, 5, 12, 6]} +{"sent_id": [1, 5, 10, 2, 9, 4]} +{"sent_id": [2, 0, 5, 3, 1, 13]} +{"sent_id": [1, 4, 3, 7, 2, 15]} +{"sent_id": [5, 7, 1, 4, 3, 0]} +{"sent_id": [4, 1, 9, 13, 16, 8]} +{"sent_id": [3, 1, 7, 10, 9, 4]} +{"sent_id": [2, 1, 0, 3, 6, 4]} +{"sent_id": [3, 10, 1, 11, 0, 2]} +{"sent_id": [0, 3, 9, 8, 1, 4]} +{"sent_id": [4, 0, 2, 3, 13, 14]} +{"sent_id": [3, 0, 12, 7, 11, 8]} +{"sent_id": [2, 3, 0, 18, 13, 6]} +{"sent_id": [0, 3, 2, 6, 14, 5]} +{"sent_id": [3, 9, 2, 4, 1, 0]} +{"sent_id": [3, 1, 2, 4, 0, 6]} +{"sent_id": [1, 2, 4, 5, 7, 3]} +{"sent_id": [6, 1, 0, 8, 4, 2]} +{"sent_id": [2, 14, 0, 19, 5, 4]} +{"sent_id": [3, 1, 2, 5, 0, 4]} +{"sent_id": [3, 4, 6, 1, 11, 9]} +{"sent_id": [2, 3, 0, 1, 4, 5]} +{"sent_id": [3, 15, 7, 14, 16, 8]} +{"sent_id": [3, 4, 1, 2, 13, 6]} +{"sent_id": [3, 19, 4, 20, 5, 8]} +{"sent_id": [3, 14, 15, 9, 2, 4]} +{"sent_id": [1, 4, 0, 11, 5, 9]} +{"sent_id": [2, 3, 1, 0, 4, 13]} +{"sent_id": [2, 12, 14, 1, 4, 19]} +{"sent_id": [6, 1, 8, 14, 9, 0]} +{"sent_id": [4, 2, 9, 5, 7, 10]} +{"sent_id": [5, 4, 14, 2, 11, 15]} +{"sent_id": [3, 2, 9, 8, 16, 12]} +{"sent_id": [0, 3, 11, 13, 1, 4]} +{"sent_id": [2, 4, 1, 6, 8, 5]} +{"sent_id": [3, 2, 7, 9, 0, 8]} +{"sent_id": [2, 4, 9, 16, 10, 1]} +{"sent_id": [9, 11, 3, 2, 1, 0]} +{"sent_id": [1, 0, 3, 5, 16, 9]} +{"sent_id": [1, 0, 4, 3, 2, 5]} +{"sent_id": [4, 1, 0, 16, 3, 12]} +{"sent_id": [3, 2, 10, 6, 1, 5]} +{"sent_id": [3, 5, 6, 17, 7, 14]} +{"sent_id": [13, 0, 3, 4, 1, 2]} +{"sent_id": [2, 1, 0, 4, 8, 5]} +{"sent_id": [1, 7, 6, 2, 0, 9]} +{"sent_id": [3, 0, 1, 2, 5, 8]} +{"sent_id": [2, 1, 0, 5, 3, 7]} +{"sent_id": [0, 5, 4, 10, 3, 1]} +{"sent_id": [2, 1, 4, 6, 5, 10]} +{"sent_id": [4, 0, 5, 14, 1, 2]} +{"sent_id": [2, 1, 3, 14, 13, 0]} +{"sent_id": [2, 0, 3, 8, 1, 7]} +{"sent_id": [3, 1, 0, 2, 8, 4]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [1, 5, 3, 8, 4, 2]} +{"sent_id": [2, 1, 3, 4, 8, 10]} +{"sent_id": [2, 0, 4, 3, 9, 1]} +{"sent_id": [10, 21, 11, 16, 0, 23]} +{"sent_id": [1, 2, 7, 0, 9, 5]} +{"sent_id": [2, 4, 6, 7, 9, 1]} +{"sent_id": [5, 6, 3, 4, 1, 7]} +{"sent_id": [3, 4, 1, 0, 14, 8]} +{"sent_id": [2, 1, 3, 14, 4, 16]} +{"sent_id": [1, 4, 7, 0, 3, 2]} +{"sent_id": [1, 4, 5, 2, 3, 8]} +{"sent_id": [2, 3, 15, 4, 16, 1]} +{"sent_id": [0, 2, 10, 4, 9, 5]} +{"sent_id": [1, 3, 0, 8, 9, 4]} +{"sent_id": [1, 2, 7, 3, 8, 0]} +{"sent_id": [1, 2, 6, 15, 4, 0]} +{"sent_id": [3, 5, 7, 2, 4, 18]} +{"sent_id": [1, 3, 2, 4, 8, 5]} +{"sent_id": [3, 4, 6, 5, 7, 2]} +{"sent_id": [1, 4, 2, 0, 3, 5]} +{"sent_id": [1, 2, 5, 0, 3, 4]} +{"sent_id": [2, 4, 8, 3, 5, 0]} +{"sent_id": [3, 0, 1, 2, 4, 5]} +{"sent_id": [4, 5, 6, 1, 0, 10]} +{"sent_id": [4, 10, 9, 5, 8, 1]} +{"sent_id": [3, 7, 1, 4, 2, 0]} +{"sent_id": [2, 0, 3, 8, 4, 12]} +{"sent_id": [2, 4, 1, 6, 7, 12]} +{"sent_id": [3, 1, 2, 10, 5, 9]} +{"sent_id": [1, 2, 8, 11, 7, 4]} +{"sent_id": [1, 2, 9, 14, 0, 5]} +{"sent_id": [1, 2, 19, 8, 10, 3]} +{"sent_id": [7, 9, 3, 14, 16, 8]} +{"sent_id": [8, 0, 4, 14, 7, 3]} +{"sent_id": [9, 3, 0, 10, 8, 1]} +{"sent_id": [4, 2, 1, 3, 10, 11]} +{"sent_id": [2, 6, 5, 7, 10, 3]} +{"sent_id": [1, 9, 2, 3, 7, 8]} +{"sent_id": [6, 7, 13, 0, 5, 4]} +{"sent_id": [1, 2, 6, 4, 7, 5]} +{"sent_id": [1, 9, 0, 2, 3, 10]} +{"sent_id": [0, 7, 3, 1, 10, 4]} +{"sent_id": [3, 2, 13, 4, 5, 1]} +{"sent_id": [0, 4, 2, 1, 6, 3]} +{"sent_id": [9, 3, 1, 10, 0, 2]} +{"sent_id": [2, 4, 3, 1, 6, 5]} +{"sent_id": [1, 6, 4, 3, 12, 15]} +{"sent_id": [2, 1, 3, 0, 14, 15]} +{"sent_id": [2, 1, 5, 3, 0, 6]} +{"sent_id": [4, 1, 3, 2, 7, 5]} +{"sent_id": [1, 2, 3, 5, 0, 6]} +{"sent_id": [3, 9, 2, 6, 14, 4]} +{"sent_id": [1, 0, 3, 14, 15, 13]} +{"sent_id": [3, 4, 5, 0, 1, 16]} +{"sent_id": [3, 1, 2, 4, 0, 8]} +{"sent_id": [3, 4, 1, 2, 0, 12]} +{"sent_id": [2, 3, 0, 4, 5, 6]} +{"sent_id": [3, 4, 1, 2, 0, 5]} +{"sent_id": [1, 4, 2, 3, 12, 9]} +{"sent_id": [15, 0, 2, 3, 4, 1]} +{"sent_id": [0, 1, 4, 8, 14, 3]} +{"sent_id": [4, 3, 0, 1, 8, 2]} +{"sent_id": [1, 3, 0, 2, 5, 4]} +{"sent_id": [3, 0, 13, 1, 2, 4]} +{"sent_id": [12, 2, 11, 1, 8, 3]} +{"sent_id": [2, 3, 4, 0, 1, 16]} +{"sent_id": [6, 1, 2, 3, 4, 0]} +{"sent_id": [3, 12, 13, 4, 0, 1]} +{"sent_id": [0, 2, 3, 10, 9, 4]} +{"sent_id": [5, 2, 3, 11, 0, 12]} +{"sent_id": [9, 3, 6, 10, 4, 5]} +{"sent_id": [0, 3, 5, 1, 2, 4]} +{"sent_id": [4, 10, 11, 3, 0, 1]} +{"sent_id": [0, 6, 5, 2, 3, 1]} +{"sent_id": [3, 0, 1, 2, 5, 4]} +{"sent_id": [3, 2, 0, 8, 11, 16]} +{"sent_id": [1, 0, 13, 5, 6, 12]} +{"sent_id": [8, 3, 14, 2, 6, 5]} +{"sent_id": [2, 1, 5, 3, 4, 0]} +{"sent_id": [1, 2, 11, 0, 3, 8]} +{"sent_id": [5, 1, 14, 2, 0, 4]} +{"sent_id": [4, 9, 8, 1, 3, 6]} +{"sent_id": [0, 2, 1, 6, 14, 7]} +{"sent_id": [3, 2, 4, 11, 12, 1]} +{"sent_id": [5, 1, 10, 0, 3, 4]} +{"sent_id": [1, 5, 2, 4, 6, 0]} +{"sent_id": [0, 16, 1, 4, 5, 9]} +{"sent_id": [2, 4, 3, 1, 0, 5]} +{"sent_id": [1, 9, 2, 13, 0, 12]} +{"sent_id": [2, 1, 13, 4, 12, 14]} +{"sent_id": [4, 9, 1, 5, 2, 0]} +{"sent_id": [1, 2, 3, 9, 0, 4]} +{"sent_id": [4, 5, 3, 0, 9, 1]} +{"sent_id": [3, 0, 1, 2, 12, 4]} +{"sent_id": [1, 4, 3, 0, 5, 2]} +{"sent_id": [0, 3, 4, 10, 2, 9]} +{"sent_id": [2, 6, 0, 5, 1, 4]} +{"sent_id": [0, 3, 4, 16, 1, 8]} +{"sent_id": [12, 0, 3, 5, 4, 13]} +{"sent_id": [1, 2, 9, 4, 10, 3]} +{"sent_id": [1, 0, 3, 5, 2, 8]} +{"sent_id": [2, 3, 7, 12, 1, 5]} +{"sent_id": [3, 2, 1, 5, 18, 0]} +{"sent_id": [0, 1, 2, 10, 6, 5]} +{"sent_id": [3, 0, 7, 2, 9, 13]} +{"sent_id": [3, 1, 5, 0, 6, 7]} +{"sent_id": [2, 3, 4, 5, 0, 6]} +{"sent_id": [3, 2, 1, 4, 5, 13]} +{"sent_id": [1, 2, 3, 10, 6, 5]} +{"sent_id": [1, 2, 3, 8, 6, 15]} +{"sent_id": [1, 3, 2, 4, 5, 0]} +{"sent_id": [2, 1, 3, 5, 7, 12]} +{"sent_id": [1, 2, 4, 3, 10, 12]} +{"sent_id": [1, 2, 11, 10, 0, 14]} +{"sent_id": [11, 3, 2, 1, 0, 16]} +{"sent_id": [1, 5, 4, 2, 10, 13]} +{"sent_id": [4, 1, 6, 2, 0, 15]} +{"sent_id": [1, 4, 5, 0, 3, 2]} +{"sent_id": [9, 2, 11, 3, 1, 10]} +{"sent_id": [4, 1, 2, 6, 8, 3]} +{"sent_id": [13, 7, 8, 12, 6, 4]} +{"sent_id": [4, 1, 2, 6, 0, 7]} +{"sent_id": [1, 2, 6, 5, 10, 11]} +{"sent_id": [1, 8, 4, 9, 0, 2]} +{"sent_id": [1, 6, 7, 0, 13, 4]} +{"sent_id": [10, 19, 4, 11, 3, 15]} +{"sent_id": [1, 4, 2, 8, 7, 5]} +{"sent_id": [3, 1, 10, 11, 4, 2]} +{"sent_id": [0, 1, 5, 3, 4, 14]} +{"sent_id": [14, 5, 15, 1, 2, 0]} +{"sent_id": [6, 11, 4, 0, 1, 2]} +{"sent_id": [1, 11, 22, 3, 0, 23]} +{"sent_id": [4, 16, 0, 3, 5, 1]} +{"sent_id": [4, 3, 5, 0, 13, 10]} +{"sent_id": [6, 1, 2, 7, 0, 13]} +{"sent_id": [5, 2, 7, 1, 10, 4]} +{"sent_id": [2, 1, 0, 8, 3, 9]} +{"sent_id": [4, 1, 12, 2, 0, 17]} +{"sent_id": [1, 15, 8, 13, 2, 17]} +{"sent_id": [2, 7, 1, 3, 4, 5]} +{"sent_id": [3, 4, 7, 1, 2, 13]} +{"sent_id": [0, 1, 6, 14, 4, 3]} +{"sent_id": [1, 5, 0, 9, 4, 6]} +{"sent_id": [1, 3, 2, 4, 0, 9]} +{"sent_id": [1, 2, 11, 0, 3, 6]} +{"sent_id": [1, 4, 3, 5, 16, 2]} +{"sent_id": [0, 4, 6, 11, 9, 7]} +{"sent_id": [4, 2, 3, 15, 1, 10]} +{"sent_id": [13, 2, 1, 11, 0, 9]} +{"sent_id": [3, 2, 7, 0, 1, 4]} +{"sent_id": [5, 1, 6, 3, 2, 7]} +{"sent_id": [3, 1, 0, 2, 7, 5]} +{"sent_id": [1, 3, 5, 7, 4, 12]} +{"sent_id": [8, 0, 2, 6, 9, 1]} +{"sent_id": [8, 20, 21, 10, 5, 7]} +{"sent_id": [4, 3, 1, 5, 8, 2]} +{"sent_id": [3, 4, 11, 5, 10, 6]} +{"sent_id": [2, 7, 3, 4, 5, 0]} +{"sent_id": [6, 7, 13, 2, 1, 8]} +{"sent_id": [2, 3, 7, 6, 5, 4]} +{"sent_id": [0, 1, 2, 4, 10, 3]} +{"sent_id": [1, 3, 11, 14, 2, 6]} +{"sent_id": [2, 1, 4, 5, 0, 10]} +{"sent_id": [1, 3, 4, 2, 9, 7]} +{"sent_id": [9, 2, 0, 4, 3, 1]} +{"sent_id": [3, 13, 6, 4, 5, 8]} +{"sent_id": [2, 1, 14, 4, 7, 0]} +{"sent_id": [1, 2, 4, 6, 11, 16]} +{"sent_id": [0, 13, 2, 1, 8, 9]} +{"sent_id": [2, 0, 3, 4, 5, 11]} +{"sent_id": [4, 2, 5, 3, 6, 10]} +{"sent_id": [0, 4, 1, 10, 3, 8]} +{"sent_id": [1, 10, 6, 11, 3, 5]} +{"sent_id": [1, 2, 5, 3, 0, 4]} +{"sent_id": [1, 2, 6, 3, 15, 0]} +{"sent_id": [1, 2, 0, 4, 3, 14]} +{"sent_id": [4, 5, 2, 1, 0, 11]} +{"sent_id": [1, 4, 2, 18, 0, 5]} +{"sent_id": [2, 6, 4, 7, 5, 14]} +{"sent_id": [2, 3, 9, 1, 12, 5]} +{"sent_id": [2, 1, 8, 0, 24, 3]} +{"sent_id": [10, 2, 0, 3, 1, 4]} +{"sent_id": [0, 3, 2, 8, 1, 16]} +{"sent_id": [1, 6, 5, 8, 7, 0]} +{"sent_id": [1, 2, 3, 5, 4, 0]} +{"sent_id": [3, 1, 4, 6, 9, 5]} +{"sent_id": [4, 5, 1, 3, 14, 2]} +{"sent_id": [4, 2, 1, 5, 15, 6]} +{"sent_id": [5, 1, 6, 2, 10, 0]} +{"sent_id": [10, 11, 18, 12, 8, 9]} +{"sent_id": [1, 3, 0, 2, 4, 6]} +{"sent_id": [3, 5, 10, 4, 2, 14]} +{"sent_id": [1, 3, 6, 7, 13, 5]} +{"sent_id": [0, 4, 2, 5, 3, 1]} +{"sent_id": [1, 2, 0, 6, 5, 12]} +{"sent_id": [0, 7, 2, 8, 1, 9]} +{"sent_id": [1, 2, 0, 3, 4, 15]} +{"sent_id": [0, 3, 4, 6, 12, 11]} +{"sent_id": [1, 2, 3, 13, 0, 9]} +{"sent_id": [1, 2, 4, 3, 7, 16]} +{"sent_id": [3, 5, 2, 4, 10, 1]} +{"sent_id": [1, 13, 8, 4, 2, 9]} +{"sent_id": [1, 2, 5, 0, 9, 6]} +{"sent_id": [3, 4, 5, 2, 14, 7]} +{"sent_id": [2, 4, 1, 3, 11, 7]} +{"sent_id": [0, 7, 2, 14, 5, 18]} +{"sent_id": [4, 8, 3, 2, 0, 1]} +{"sent_id": [0, 2, 10, 4, 15, 3]} +{"sent_id": [5, 2, 6, 8, 4, 1]} +{"sent_id": [1, 2, 3, 5, 4, 16]} +{"sent_id": [3, 1, 2, 4, 6, 0]} +{"sent_id": [4, 8, 11, 1, 6, 7]} +{"sent_id": [1, 14, 12, 2, 16, 13]} +{"sent_id": [3, 6, 11, 2, 0, 1]} +{"sent_id": [8, 1, 0, 9, 7, 4]} +{"sent_id": [2, 1, 9, 4, 8, 0]} +{"sent_id": [4, 1, 5, 10, 2, 3]} +{"sent_id": [3, 1, 12, 2, 0, 5]} +{"sent_id": [4, 9, 11, 5, 10, 3]} +{"sent_id": [3, 1, 2, 4, 6, 0]} +{"sent_id": [4, 0, 1, 20, 18, 6]} +{"sent_id": [3, 2, 6, 1, 11, 10]} +{"sent_id": [1, 4, 2, 3, 13, 0]} +{"sent_id": [10, 12, 3, 2, 0, 9]} +{"sent_id": [11, 5, 6, 14, 13, 2]} +{"sent_id": [2, 8, 0, 7, 3, 4]} +{"sent_id": [3, 15, 14, 2, 4, 8]} +{"sent_id": [5, 14, 4, 2, 10, 6]} +{"sent_id": [1, 2, 6, 5, 11, 14]} +{"sent_id": [2, 6, 0, 8, 1, 10]} +{"sent_id": [3, 1, 13, 17, 0, 15]} +{"sent_id": [5, 4, 9, 2, 3, 1]} +{"sent_id": [4, 1, 2, 3, 5, 0]} +{"sent_id": [0, 3, 11, 4, 1, 2]} +{"sent_id": [0, 2, 6, 4, 5, 3]} +{"sent_id": [2, 3, 1, 4, 5, 0]} +{"sent_id": [2, 8, 0, 5, 9, 6]} +{"sent_id": [1, 4, 11, 5, 0, 3]} +{"sent_id": [3, 8, 1, 0, 12, 2]} +{"sent_id": [2, 5, 4, 6, 8, 1]} +{"sent_id": [4, 6, 0, 3, 11, 7]} +{"sent_id": [4, 5, 10, 2, 1, 3]} +{"sent_id": [2, 12, 3, 0, 4, 8]} +{"sent_id": [3, 1, 2, 9, 5, 13]} +{"sent_id": [1, 4, 6, 5, 2, 0]} +{"sent_id": [0, 3, 13, 1, 7, 12]} +{"sent_id": [4, 1, 2, 3, 0, 10]} +{"sent_id": [1, 2, 3, 16, 0, 5]} +{"sent_id": [1, 12, 10, 3, 2, 5]} +{"sent_id": [9, 13, 6, 16, 5, 12]} +{"sent_id": [2, 7, 4, 3, 5, 12]} +{"sent_id": [1, 3, 5, 11, 4, 8]} +{"sent_id": [1, 0, 10, 12, 6, 3]} +{"sent_id": [1, 6, 10, 3, 14, 12]} +{"sent_id": [7, 2, 4, 5, 3, 11]} +{"sent_id": [0, 4, 2, 3, 13, 10]} +{"sent_id": [0, 4, 1, 3, 5, 16]} +{"sent_id": [2, 11, 1, 7, 12, 3]} +{"sent_id": [4, 3, 0, 11, 7, 9]} +{"sent_id": [2, 3, 1, 0, 6, 13]} +{"sent_id": [5, 2, 1, 3, 8, 4]} +{"sent_id": [4, 6, 5, 3, 0, 7]} +{"sent_id": [4, 9, 1, 5, 6, 3]} +{"sent_id": [5, 20, 21, 6, 8, 9]} +{"sent_id": [3, 4, 6, 0, 15, 5]} +{"sent_id": [0, 6, 13, 8, 1, 2]} +{"sent_id": [1, 2, 3, 4, 11, 12]} +{"sent_id": [0, 2, 9, 1, 4, 6]} +{"sent_id": [0, 6, 2, 12, 7, 1]} +{"sent_id": [1, 2, 3, 9, 4, 8]} +{"sent_id": [4, 8, 5, 2, 0, 7]} +{"sent_id": [0, 4, 9, 2, 10, 16]} +{"sent_id": [4, 5, 9, 6, 8, 11]} +{"sent_id": [1, 2, 9, 10, 4, 16]} +{"sent_id": [1, 2, 3, 0, 13, 4]} +{"sent_id": [3, 1, 2, 5, 10, 6]} +{"sent_id": [2, 5, 6, 4, 3, 9]} +{"sent_id": [1, 2, 3, 5, 9, 8]} +{"sent_id": [0, 2, 11, 3, 13, 1]} +{"sent_id": [3, 2, 6, 1, 0, 4]} +{"sent_id": [0, 2, 3, 18, 4, 10]} +{"sent_id": [4, 1, 3, 14, 8, 2]} +{"sent_id": [1, 3, 6, 4, 8, 5]} +{"sent_id": [0, 1, 3, 10, 4, 2]} +{"sent_id": [1, 14, 3, 0, 8, 7]} +{"sent_id": [0, 2, 1, 5, 9, 3]} +{"sent_id": [1, 5, 3, 4, 2, 7]} +{"sent_id": [3, 4, 2, 5, 0, 6]} +{"sent_id": [1, 7, 9, 8, 14, 2]} +{"sent_id": [3, 4, 10, 11, 7, 2]} +{"sent_id": [1, 3, 2, 13, 4, 0]} +{"sent_id": [3, 0, 2, 1, 19, 5]} +{"sent_id": [4, 7, 0, 1, 8, 2]} +{"sent_id": [1, 4, 5, 13, 0, 7]} +{"sent_id": [3, 2, 6, 0, 1, 5]} +{"sent_id": [0, 1, 5, 19, 4, 20]} +{"sent_id": [3, 1, 2, 6, 0, 5]} +{"sent_id": [1, 2, 4, 9, 0, 3]} +{"sent_id": [4, 2, 1, 0, 3, 18]} +{"sent_id": [1, 3, 2, 4, 5, 7]} +{"sent_id": [2, 3, 1, 0, 9, 8]} +{"sent_id": [2, 7, 9, 3, 4, 12]} +{"sent_id": [2, 1, 3, 18, 17, 4]} +{"sent_id": [0, 1, 6, 5, 10, 13]} +{"sent_id": [0, 1, 12, 4, 2, 19]} +{"sent_id": [4, 2, 3, 1, 5, 8]} +{"sent_id": [4, 5, 0, 1, 2, 14]} +{"sent_id": [3, 2, 7, 0, 6, 1]} +{"sent_id": [0, 2, 1, 17, 4, 13]} +{"sent_id": [2, 1, 4, 12, 7, 3]} +{"sent_id": [2, 0, 18, 3, 16, 17]} +{"sent_id": [1, 5, 7, 13, 14, 2]} +{"sent_id": [1, 3, 0, 5, 4, 6]} +{"sent_id": [1, 2, 0, 14, 8, 12]} +{"sent_id": [3, 2, 12, 8, 6, 4]} +{"sent_id": [4, 1, 6, 0, 2, 7]} +{"sent_id": [4, 3, 8, 1, 2, 0]} +{"sent_id": [1, 0, 2, 4, 5, 7]} +{"sent_id": [0, 15, 2, 1, 10, 6]} +{"sent_id": [4, 12, 1, 9, 14, 5]} +{"sent_id": [0, 4, 12, 1, 15, 11]} +{"sent_id": [5, 3, 1, 2, 11, 0]} +{"sent_id": [3, 4, 1, 12, 0, 6]} +{"sent_id": [5, 4, 7, 6, 13, 14]} +{"sent_id": [1, 0, 4, 2, 7, 5]} +{"sent_id": [2, 4, 1, 3, 13, 14]} +{"sent_id": [3, 9, 0, 6, 1, 2]} +{"sent_id": [0, 2, 1, 13, 15, 8]} +{"sent_id": [3, 1, 10, 2, 4, 14]} +{"sent_id": [1, 9, 11, 3, 7, 2]} +{"sent_id": [3, 1, 2, 4, 7, 13]} +{"sent_id": [3, 0, 4, 10, 1, 16]} +{"sent_id": [3, 2, 1, 0, 4, 5]} +{"sent_id": [2, 1, 4, 3, 6, 10]} +{"sent_id": [3, 4, 6, 5, 2, 0]} +{"sent_id": [5, 4, 2, 1, 6, 8]} +{"sent_id": [2, 0, 3, 4, 16, 1]} +{"sent_id": [1, 0, 2, 13, 7, 4]} +{"sent_id": [3, 1, 0, 2, 4, 5]} +{"sent_id": [2, 8, 0, 3, 7, 14]} +{"sent_id": [0, 1, 2, 17, 7, 13]} +{"sent_id": [3, 1, 6, 4, 0, 2]} +{"sent_id": [1, 0, 4, 6, 3, 11]} +{"sent_id": [1, 2, 15, 0, 5, 8]} +{"sent_id": [5, 7, 1, 6, 8, 9]} +{"sent_id": [1, 3, 10, 15, 2, 4]} +{"sent_id": [2, 3, 4, 1, 5, 0]} +{"sent_id": [6, 10, 3, 5, 4, 2]} +{"sent_id": [3, 1, 2, 18, 5, 4]} +{"sent_id": [1, 2, 5, 3, 15, 6]} +{"sent_id": [4, 9, 7, 0, 3, 5]} +{"sent_id": [1, 2, 5, 3, 4, 0]} +{"sent_id": [1, 3, 2, 6, 11, 5]} +{"sent_id": [0, 1, 14, 2, 6, 4]} +{"sent_id": [3, 10, 1, 4, 8, 0]} +{"sent_id": [5, 3, 1, 0, 2, 4]} +{"sent_id": [4, 0, 1, 3, 2, 10]} +{"sent_id": [4, 1, 5, 2, 3, 8]} +{"sent_id": [1, 0, 4, 10, 6, 2]} +{"sent_id": [8, 3, 9, 5, 7, 6]} +{"sent_id": [8, 4, 0, 2, 1, 5]} +{"sent_id": [1, 3, 7, 6, 9, 4]} +{"sent_id": [4, 0, 6, 11, 2, 7]} +{"sent_id": [0, 1, 10, 16, 11, 2]} +{"sent_id": [3, 15, 1, 4, 0, 2]} +{"sent_id": [0, 1, 5, 2, 9, 4]} +{"sent_id": [1, 3, 2, 4, 13, 5]} +{"sent_id": [3, 4, 2, 5, 1, 0]} +{"sent_id": [3, 1, 4, 0, 5, 2]} +{"sent_id": [4, 0, 3, 7, 5, 2]} +{"sent_id": [2, 4, 5, 3, 0, 8]} +{"sent_id": [12, 1, 8, 0, 4, 3]} +{"sent_id": [0, 4, 9, 5, 3, 1]} +{"sent_id": [2, 3, 1, 4, 0, 10]} +{"sent_id": [3, 2, 1, 5, 10, 4]} +{"sent_id": [1, 6, 13, 3, 0, 2]} +{"sent_id": [0, 1, 2, 3, 10, 16]} +{"sent_id": [1, 3, 0, 4, 2, 11]} +{"sent_id": [1, 2, 5, 3, 10, 0]} +{"sent_id": [10, 3, 1, 2, 4, 0]} +{"sent_id": [5, 0, 1, 2, 6, 12]} +{"sent_id": [4, 1, 2, 0, 3, 8]} +{"sent_id": [3, 10, 0, 2, 1, 8]} +{"sent_id": [0, 1, 6, 2, 5, 3]} +{"sent_id": [0, 4, 1, 2, 3, 12]} +{"sent_id": [13, 6, 8, 11, 15, 12]} +{"sent_id": [1, 0, 2, 8, 4, 3]} +{"sent_id": [5, 17, 15, 3, 0, 13]} +{"sent_id": [4, 3, 12, 5, 0, 2]} +{"sent_id": [3, 11, 5, 16, 4, 7]} +{"sent_id": [0, 4, 3, 6, 5, 2]} +{"sent_id": [1, 4, 5, 0, 2, 6]} +{"sent_id": [3, 15, 1, 4, 2, 14]} +{"sent_id": [1, 4, 10, 3, 0, 2]} +{"sent_id": [8, 4, 0, 1, 3, 5]} +{"sent_id": [2, 10, 0, 9, 11, 5]} +{"sent_id": [2, 0, 3, 5, 14, 12]} +{"sent_id": [0, 9, 2, 3, 8, 10]} +{"sent_id": [1, 3, 5, 14, 2, 17]} +{"sent_id": [1, 2, 0, 4, 3, 18]} +{"sent_id": [4, 1, 15, 14, 6, 13]} +{"sent_id": [1, 0, 3, 5, 2, 17]} +{"sent_id": [2, 7, 4, 3, 10, 5]} +{"sent_id": [3, 4, 2, 1, 6, 5]} +{"sent_id": [12, 13, 1, 4, 3, 0]} +{"sent_id": [10, 0, 4, 1, 2, 13]} +{"sent_id": [1, 2, 3, 4, 5, 11]} +{"sent_id": [1, 4, 2, 5, 0, 15]} +{"sent_id": [2, 10, 5, 4, 1, 9]} +{"sent_id": [2, 1, 8, 10, 6, 9]} +{"sent_id": [0, 3, 9, 2, 5, 12]} +{"sent_id": [1, 2, 10, 3, 12, 8]} +{"sent_id": [2, 1, 7, 6, 12, 0]} +{"sent_id": [1, 13, 2, 0, 4, 3]} +{"sent_id": [2, 4, 13, 0, 3, 1]} +{"sent_id": [8, 20, 1, 2, 5, 0]} +{"sent_id": [1, 4, 8, 15, 2, 5]} +{"sent_id": [8, 10, 9, 1, 11, 0]} +{"sent_id": [1, 2, 0, 5, 8, 6]} +{"sent_id": [2, 1, 5, 10, 4, 6]} +{"sent_id": [0, 1, 7, 16, 12, 9]} +{"sent_id": [3, 1, 2, 6, 8, 0]} +{"sent_id": [2, 1, 3, 0, 9, 5]} +{"sent_id": [0, 3, 2, 1, 5, 6]} +{"sent_id": [3, 2, 5, 4, 1, 0]} +{"sent_id": [0, 3, 4, 8, 6, 10]} +{"sent_id": [1, 4, 2, 3, 5, 8]} +{"sent_id": [1, 9, 4, 5, 0, 3]} +{"sent_id": [1, 3, 4, 0, 2, 14]} +{"sent_id": [3, 1, 7, 9, 8, 2]} +{"sent_id": [8, 4, 0, 2, 1, 5]} +{"sent_id": [3, 1, 17, 11, 0, 18]} +{"sent_id": [3, 2, 10, 5, 9, 14]} +{"sent_id": [0, 4, 16, 5, 3, 15]} +{"sent_id": [1, 0, 9, 2, 17, 6]} +{"sent_id": [4, 6, 3, 10, 13, 1]} +{"sent_id": [4, 5, 1, 6, 9, 0]} +{"sent_id": [1, 7, 2, 3, 8, 0]} +{"sent_id": [2, 1, 5, 4, 7, 6]} +{"sent_id": [3, 5, 4, 2, 1, 0]} +{"sent_id": [3, 0, 2, 5, 1, 4]} +{"sent_id": [3, 2, 0, 7, 6, 4]} +{"sent_id": [1, 10, 5, 2, 3, 0]} +{"sent_id": [1, 2, 9, 12, 0, 4]} +{"sent_id": [3, 4, 1, 2, 0, 16]} +{"sent_id": [3, 0, 2, 6, 13, 5]} +{"sent_id": [4, 1, 2, 6, 8, 3]} +{"sent_id": [1, 5, 2, 6, 3, 0]} +{"sent_id": [3, 2, 1, 6, 8, 4]} +{"sent_id": [3, 4, 5, 0, 2, 15]} +{"sent_id": [2, 1, 3, 5, 13, 8]} +{"sent_id": [0, 10, 8, 9, 17, 14]} +{"sent_id": [3, 1, 2, 9, 4, 15]} +{"sent_id": [2, 5, 1, 0, 10, 4]} +{"sent_id": [2, 0, 4, 3, 1, 6]} +{"sent_id": [3, 1, 2, 14, 15, 0]} +{"sent_id": [3, 1, 4, 8, 2, 10]} +{"sent_id": [4, 3, 5, 6, 2, 7]} +{"sent_id": [12, 3, 11, 4, 0, 10]} +{"sent_id": [0, 3, 6, 2, 1, 11]} +{"sent_id": [1, 2, 11, 5, 0, 9]} +{"sent_id": [2, 1, 11, 12, 7, 8]} +{"sent_id": [3, 5, 2, 4, 0, 6]} +{"sent_id": [1, 6, 5, 14, 13, 0]} +{"sent_id": [1, 3, 0, 5, 2, 13]} +{"sent_id": [1, 3, 0, 15, 2, 5]} +{"sent_id": [1, 0, 10, 7, 9, 11]} +{"sent_id": [1, 2, 6, 0, 5, 8]} +{"sent_id": [5, 2, 3, 4, 1, 12]} +{"sent_id": [1, 3, 2, 7, 8, 4]} +{"sent_id": [1, 2, 5, 6, 14, 3]} +{"sent_id": [4, 2, 5, 12, 19, 15]} +{"sent_id": [3, 4, 0, 5, 2, 6]} +{"sent_id": [0, 8, 2, 12, 4, 3]} +{"sent_id": [13, 2, 8, 4, 7, 1]} +{"sent_id": [2, 1, 0, 6, 7, 8]} +{"sent_id": [3, 1, 0, 2, 13, 4]} +{"sent_id": [5, 2, 12, 3, 4, 7]} +{"sent_id": [3, 1, 4, 13, 0, 14]} +{"sent_id": [1, 2, 4, 0, 8, 3]} +{"sent_id": [2, 1, 4, 3, 0, 7]} +{"sent_id": [1, 2, 4, 7, 0, 6]} +{"sent_id": [0, 2, 1, 3, 5, 11]} +{"sent_id": [3, 4, 7, 2, 6, 5]} +{"sent_id": [2, 1, 4, 0, 5, 3]} +{"sent_id": [3, 12, 0, 5, 11, 16]} +{"sent_id": [1, 2, 18, 14, 12, 0]} +{"sent_id": [2, 10, 0, 3, 4, 6]} +{"sent_id": [1, 15, 2, 8, 7, 9]} +{"sent_id": [4, 5, 1, 2, 3, 11]} +{"sent_id": [2, 1, 3, 0, 6, 5]} +{"sent_id": [2, 1, 8, 6, 9, 11]} +{"sent_id": [2, 3, 1, 8, 10, 7]} +{"sent_id": [1, 2, 10, 5, 0, 7]} +{"sent_id": [3, 12, 7, 10, 2, 11]} +{"sent_id": [5, 7, 1, 2, 3, 6]} +{"sent_id": [3, 4, 10, 1, 2, 8]} +{"sent_id": [3, 0, 2, 4, 10, 5]} +{"sent_id": [0, 1, 9, 3, 4, 2]} +{"sent_id": [1, 4, 2, 5, 3, 0]} +{"sent_id": [10, 3, 0, 4, 9, 1]} +{"sent_id": [2, 7, 5, 1, 3, 6]} +{"sent_id": [1, 4, 2, 7, 5, 6]} +{"sent_id": [3, 1, 2, 5, 9, 6]} +{"sent_id": [3, 2, 5, 1, 4, 0]} +{"sent_id": [3, 4, 11, 5, 1, 14]} +{"sent_id": [6, 14, 4, 1, 3, 5]} +{"sent_id": [0, 1, 5, 10, 2, 15]} +{"sent_id": [2, 4, 6, 7, 8, 5]} +{"sent_id": [2, 5, 3, 4, 16, 0]} +{"sent_id": [3, 10, 2, 8, 0, 1]} +{"sent_id": [0, 2, 1, 6, 3, 15]} +{"sent_id": [2, 3, 4, 1, 0, 10]} +{"sent_id": [1, 5, 2, 4, 0, 3]} +{"sent_id": [5, 6, 3, 2, 10, 0]} +{"sent_id": [2, 0, 3, 4, 8, 14]} +{"sent_id": [1, 0, 5, 3, 6, 4]} +{"sent_id": [1, 7, 0, 2, 8, 12]} +{"sent_id": [3, 1, 9, 0, 5, 8]} +{"sent_id": [3, 0, 2, 1, 8, 10]} +{"sent_id": [2, 3, 1, 4, 12, 16]} +{"sent_id": [3, 0, 5, 16, 1, 4]} +{"sent_id": [4, 11, 0, 17, 19, 1]} +{"sent_id": [9, 14, 4, 1, 3, 2]} +{"sent_id": [1, 2, 5, 15, 3, 11]} +{"sent_id": [4, 1, 6, 2, 12, 5]} +{"sent_id": [4, 8, 0, 1, 5, 7]} +{"sent_id": [2, 3, 0, 14, 12, 4]} +{"sent_id": [0, 4, 2, 6, 3, 7]} +{"sent_id": [2, 0, 1, 5, 3, 12]} +{"sent_id": [4, 11, 1, 3, 2, 13]} +{"sent_id": [3, 2, 8, 9, 5, 10]} +{"sent_id": [0, 10, 2, 8, 1, 5]} +{"sent_id": [1, 2, 7, 12, 3, 9]} +{"sent_id": [12, 2, 13, 9, 3, 6]} +{"sent_id": [1, 2, 13, 3, 5, 4]} +{"sent_id": [1, 5, 2, 3, 12, 4]} +{"sent_id": [4, 14, 1, 2, 0, 3]} +{"sent_id": [0, 5, 6, 1, 15, 4]} +{"sent_id": [1, 3, 2, 20, 19, 4]} +{"sent_id": [0, 2, 5, 6, 7, 1]} +{"sent_id": [9, 4, 6, 1, 12, 7]} +{"sent_id": [4, 6, 10, 5, 7, 2]} +{"sent_id": [9, 3, 4, 1, 2, 10]} +{"sent_id": [1, 2, 7, 16, 6, 11]} +{"sent_id": [3, 1, 2, 7, 12, 5]} +{"sent_id": [1, 3, 5, 4, 0, 2]} +{"sent_id": [2, 1, 3, 9, 6, 0]} +{"sent_id": [1, 0, 2, 3, 11, 9]} +{"sent_id": [2, 4, 1, 3, 9, 0]} +{"sent_id": [2, 4, 8, 5, 1, 7]} +{"sent_id": [1, 2, 4, 3, 5, 6]} +{"sent_id": [3, 4, 0, 5, 7, 8]} +{"sent_id": [1, 13, 3, 0, 8, 2]} +{"sent_id": [3, 2, 1, 9, 10, 0]} +{"sent_id": [2, 0, 6, 9, 3, 15]} +{"sent_id": [1, 0, 2, 5, 4, 11]} +{"sent_id": [1, 0, 2, 3, 4, 9]} +{"sent_id": [1, 0, 2, 6, 4, 5]} +{"sent_id": [2, 1, 3, 0, 5, 6]} +{"sent_id": [5, 6, 9, 13, 3, 10]} +{"sent_id": [2, 1, 5, 4, 3, 9]} +{"sent_id": [0, 8, 9, 4, 2, 3]} +{"sent_id": [3, 8, 4, 1, 5, 0]} +{"sent_id": [4, 1, 3, 0, 7, 9]} +{"sent_id": [5, 4, 10, 2, 1, 0]} +{"sent_id": [4, 0, 1, 2, 8, 7]} +{"sent_id": [0, 2, 9, 4, 3, 7]} +{"sent_id": [1, 2, 3, 5, 4, 0]} +{"sent_id": [11, 13, 5, 1, 4, 3]} +{"sent_id": [2, 3, 4, 1, 5, 7]} +{"sent_id": [2, 1, 0, 5, 11, 9]} +{"sent_id": [3, 14, 5, 0, 1, 4]} +{"sent_id": [1, 2, 4, 0, 13, 7]} +{"sent_id": [3, 2, 1, 7, 0, 11]} +{"sent_id": [2, 1, 4, 6, 0, 9]} +{"sent_id": [1, 3, 8, 7, 2, 5]} +{"sent_id": [19, 4, 0, 12, 1, 11]} +{"sent_id": [1, 7, 0, 6, 3, 2]} +{"sent_id": [3, 0, 4, 1, 2, 5]} +{"sent_id": [1, 0, 4, 2, 10, 7]} +{"sent_id": [3, 4, 1, 5, 22, 21]} +{"sent_id": [1, 5, 3, 8, 6, 2]} +{"sent_id": [4, 18, 3, 19, 7, 0]} +{"sent_id": [3, 12, 1, 0, 4, 2]} +{"sent_id": [4, 5, 0, 6, 2, 1]} +{"sent_id": [9, 3, 1, 2, 0, 5]} +{"sent_id": [3, 4, 1, 0, 15, 2]} +{"sent_id": [1, 3, 9, 8, 2, 11]} +{"sent_id": [7, 1, 3, 0, 2, 6]} +{"sent_id": [1, 5, 3, 4, 7, 8]} +{"sent_id": [5, 0, 4, 1, 10, 9]} +{"sent_id": [1, 2, 11, 3, 4, 8]} +{"sent_id": [4, 3, 0, 7, 2, 8]} +{"sent_id": [1, 2, 0, 3, 8, 12]} +{"sent_id": [2, 1, 0, 12, 3, 4]} +{"sent_id": [3, 0, 2, 4, 11, 7]} +{"sent_id": [1, 2, 5, 6, 0, 4]} +{"sent_id": [1, 3, 2, 0, 5, 6]} +{"sent_id": [1, 0, 4, 7, 2, 5]} +{"sent_id": [3, 1, 9, 2, 10, 0]} +{"sent_id": [3, 1, 2, 6, 8, 5]} +{"sent_id": [1, 2, 6, 3, 5, 9]} +{"sent_id": [0, 3, 1, 5, 17, 4]} +{"sent_id": [2, 3, 1, 9, 7, 12]} +{"sent_id": [1, 2, 3, 4, 6, 10]} +{"sent_id": [5, 11, 10, 3, 2, 8]} +{"sent_id": [3, 0, 2, 1, 4, 5]} +{"sent_id": [3, 4, 11, 0, 6, 1]} +{"sent_id": [2, 0, 1, 3, 4, 11]} +{"sent_id": [1, 11, 0, 3, 2, 6]} +{"sent_id": [3, 10, 2, 4, 11, 5]} +{"sent_id": [13, 3, 2, 8, 4, 14]} +{"sent_id": [1, 2, 0, 5, 6, 4]} +{"sent_id": [4, 2, 3, 1, 0, 11]} +{"sent_id": [3, 1, 14, 10, 0, 2]} +{"sent_id": [3, 4, 1, 5, 2, 11]} +{"sent_id": [7, 9, 0, 13, 4, 1]} +{"sent_id": [3, 1, 11, 4, 2, 12]} +{"sent_id": [3, 14, 11, 1, 5, 6]} +{"sent_id": [1, 3, 0, 2, 4, 5]} +{"sent_id": [3, 1, 4, 9, 2, 5]} +{"sent_id": [0, 1, 3, 8, 9, 6]} +{"sent_id": [1, 5, 8, 7, 6, 0]} +{"sent_id": [1, 5, 0, 16, 7, 8]} +{"sent_id": [1, 3, 14, 4, 2, 5]} +{"sent_id": [2, 4, 9, 1, 10, 0]} +{"sent_id": [1, 2, 5, 3, 12, 0]} +{"sent_id": [5, 6, 3, 7, 2, 1]} +{"sent_id": [6, 9, 0, 13, 7, 3]} +{"sent_id": [8, 0, 4, 2, 6, 12]} +{"sent_id": [0, 7, 1, 4, 5, 8]} +{"sent_id": [0, 2, 5, 6, 3, 7]} +{"sent_id": [0, 4, 1, 5, 2, 7]} +{"sent_id": [1, 2, 3, 4, 6, 0]} +{"sent_id": [6, 5, 7, 0, 1, 3]} +{"sent_id": [10, 11, 12, 1, 0, 4]} +{"sent_id": [1, 5, 4, 7, 6, 2]} +{"sent_id": [1, 5, 8, 2, 6, 0]} +{"sent_id": [1, 7, 5, 9, 2, 4]} +{"sent_id": [1, 2, 3, 11, 10, 9]} +{"sent_id": [2, 1, 4, 3, 0, 7]} +{"sent_id": [1, 3, 5, 6, 2, 0]} +{"sent_id": [4, 3, 5, 0, 1, 17]} +{"sent_id": [4, 0, 9, 1, 5, 2]} +{"sent_id": [2, 1, 3, 4, 8, 5]} +{"sent_id": [2, 3, 4, 1, 5, 6]} +{"sent_id": [1, 4, 3, 5, 6, 2]} +{"sent_id": [1, 0, 3, 6, 2, 4]} +{"sent_id": [3, 15, 1, 6, 4, 0]} +{"sent_id": [1, 0, 5, 2, 9, 3]} +{"sent_id": [1, 0, 2, 3, 9, 4]} +{"sent_id": [0, 9, 14, 8, 1, 2]} +{"sent_id": [10, 4, 13, 5, 3, 2]} +{"sent_id": [3, 11, 7, 0, 9, 10]} +{"sent_id": [2, 3, 11, 1, 7, 10]} +{"sent_id": [5, 1, 6, 0, 8, 11]} +{"sent_id": [7, 0, 12, 1, 2, 3]} +{"sent_id": [0, 1, 2, 9, 7, 3]} +{"sent_id": [8, 12, 6, 10, 9, 1]} +{"sent_id": [1, 5, 4, 2, 7, 3]} +{"sent_id": [8, 1, 2, 3, 7, 5]} +{"sent_id": [3, 0, 4, 2, 1, 5]} +{"sent_id": [3, 4, 14, 2, 1, 0]} +{"sent_id": [4, 2, 3, 7, 6, 11]} +{"sent_id": [1, 3, 2, 8, 13, 0]} +{"sent_id": [5, 3, 18, 4, 14, 19]} +{"sent_id": [2, 5, 3, 1, 4, 9]} +{"sent_id": [0, 3, 1, 2, 14, 5]} +{"sent_id": [14, 4, 6, 0, 2, 1]} +{"sent_id": [3, 5, 9, 0, 6, 11]} +{"sent_id": [1, 3, 2, 4, 5, 6]} +{"sent_id": [0, 5, 1, 9, 3, 2]} +{"sent_id": [1, 10, 2, 3, 5, 4]} +{"sent_id": [5, 0, 6, 4, 2, 7]} +{"sent_id": [2, 1, 3, 4, 5, 18]} +{"sent_id": [1, 4, 2, 3, 11, 13]} +{"sent_id": [1, 4, 0, 2, 10, 9]} +{"sent_id": [1, 0, 6, 5, 2, 9]} +{"sent_id": [3, 4, 8, 0, 1, 7]} +{"sent_id": [0, 3, 13, 5, 1, 2]} +{"sent_id": [2, 1, 7, 13, 4, 8]} +{"sent_id": [1, 3, 2, 0, 12, 10]} +{"sent_id": [3, 1, 4, 2, 8, 0]} +{"sent_id": [1, 2, 3, 5, 7, 0]} +{"sent_id": [3, 12, 4, 13, 14, 15]} +{"sent_id": [0, 13, 7, 5, 1, 3]} +{"sent_id": [3, 4, 8, 2, 0, 1]} +{"sent_id": [3, 1, 5, 4, 7, 10]} +{"sent_id": [3, 2, 1, 7, 0, 5]} +{"sent_id": [3, 9, 0, 8, 4, 5]} +{"sent_id": [0, 1, 2, 6, 12, 8]} +{"sent_id": [0, 1, 3, 11, 4, 5]} +{"sent_id": [1, 2, 7, 8, 10, 0]} +{"sent_id": [9, 0, 1, 3, 2, 12]} +{"sent_id": [2, 4, 13, 12, 9, 0]} +{"sent_id": [1, 6, 5, 2, 12, 7]} +{"sent_id": [7, 1, 3, 0, 5, 8]} +{"sent_id": [4, 3, 8, 2, 0, 9]} +{"sent_id": [0, 1, 2, 4, 5, 6]} +{"sent_id": [2, 5, 3, 13, 0, 4]} +{"sent_id": [0, 7, 3, 1, 2, 4]} +{"sent_id": [2, 3, 4, 0, 5, 1]} +{"sent_id": [2, 1, 0, 17, 9, 8]} +{"sent_id": [3, 2, 5, 0, 1, 6]} +{"sent_id": [3, 4, 0, 5, 13, 1]} +{"sent_id": [4, 5, 6, 17, 7, 0]} +{"sent_id": [1, 2, 3, 8, 4, 7]} +{"sent_id": [1, 3, 2, 9, 8, 0]} +{"sent_id": [0, 1, 3, 9, 2, 11]} +{"sent_id": [3, 1, 2, 10, 11, 5]} +{"sent_id": [1, 2, 3, 5, 11, 0]} +{"sent_id": [3, 2, 8, 4, 5, 1]} +{"sent_id": [1, 9, 5, 3, 2, 4]} +{"sent_id": [1, 2, 3, 8, 9, 6]} +{"sent_id": [6, 9, 2, 5, 7, 3]} +{"sent_id": [3, 10, 2, 6, 9, 0]} +{"sent_id": [2, 1, 3, 4, 7, 8]} +{"sent_id": [0, 4, 12, 1, 10, 5]} +{"sent_id": [1, 8, 2, 13, 3, 9]} +{"sent_id": [3, 1, 12, 13, 4, 2]} +{"sent_id": [0, 4, 1, 5, 14, 2]} +{"sent_id": [2, 0, 3, 1, 12, 5]} +{"sent_id": [1, 3, 0, 12, 2, 9]} +{"sent_id": [3, 2, 5, 1, 0, 8]} +{"sent_id": [1, 3, 2, 0, 4, 18]} +{"sent_id": [4, 6, 10, 8, 3, 14]} +{"sent_id": [2, 0, 3, 4, 1, 9]} +{"sent_id": [2, 1, 3, 5, 14, 7]} +{"sent_id": [2, 0, 1, 4, 5, 3]} +{"sent_id": [3, 1, 2, 10, 0, 8]} +{"sent_id": [4, 3, 2, 1, 11, 7]} +{"sent_id": [3, 4, 13, 0, 1, 6]} +{"sent_id": [4, 1, 3, 15, 17, 13]} +{"sent_id": [1, 13, 12, 6, 4, 5]} +{"sent_id": [4, 6, 8, 3, 5, 9]} +{"sent_id": [2, 1, 4, 11, 3, 5]} +{"sent_id": [12, 6, 13, 4, 8, 3]} +{"sent_id": [2, 0, 16, 1, 7, 11]} +{"sent_id": [4, 8, 3, 13, 18, 9]} +{"sent_id": [3, 10, 2, 0, 4, 1]} +{"sent_id": [3, 1, 0, 8, 4, 2]} +{"sent_id": [1, 5, 4, 10, 2, 3]} +{"sent_id": [1, 4, 0, 11, 2, 14]} +{"sent_id": [3, 4, 1, 13, 0, 9]} +{"sent_id": [3, 1, 4, 0, 8, 2]} +{"sent_id": [5, 1, 13, 6, 7, 3]} +{"sent_id": [4, 0, 5, 3, 1, 2]} +{"sent_id": [0, 18, 13, 3, 1, 19]} +{"sent_id": [0, 1, 3, 2, 10, 13]} +{"sent_id": [10, 3, 1, 5, 2, 4]} +{"sent_id": [3, 2, 1, 0, 5, 17]} +{"sent_id": [3, 0, 10, 2, 11, 1]} +{"sent_id": [3, 8, 2, 16, 9, 0]} +{"sent_id": [1, 6, 8, 2, 0, 9]} +{"sent_id": [1, 2, 3, 4, 7, 8]} +{"sent_id": [1, 4, 6, 5, 2, 3]} +{"sent_id": [2, 0, 1, 6, 3, 5]} +{"sent_id": [2, 0, 7, 4, 12, 1]} +{"sent_id": [0, 1, 2, 14, 12, 3]} +{"sent_id": [1, 2, 4, 5, 13, 6]} +{"sent_id": [5, 1, 0, 7, 9, 2]} +{"sent_id": [1, 12, 9, 2, 0, 5]} +{"sent_id": [2, 1, 10, 0, 3, 4]} +{"sent_id": [1, 5, 6, 4, 3, 9]} +{"sent_id": [1, 3, 6, 4, 7, 9]} +{"sent_id": [2, 3, 0, 1, 4, 7]} +{"sent_id": [0, 1, 6, 2, 3, 9]} +{"sent_id": [2, 5, 13, 0, 6, 10]} +{"sent_id": [6, 1, 2, 3, 4, 9]} +{"sent_id": [2, 3, 5, 6, 0, 1]} +{"sent_id": [3, 1, 9, 2, 13, 8]} +{"sent_id": [3, 9, 0, 15, 1, 2]} +{"sent_id": [2, 10, 11, 6, 0, 13]} +{"sent_id": [0, 4, 5, 1, 16, 13]} +{"sent_id": [0, 10, 4, 5, 2, 1]} +{"sent_id": [2, 1, 5, 4, 3, 0]} +{"sent_id": [2, 9, 4, 7, 1, 10]} +{"sent_id": [5, 1, 2, 3, 9, 0]} +{"sent_id": [1, 2, 7, 4, 6, 0]} +{"sent_id": [1, 2, 0, 6, 5, 4]} +{"sent_id": [5, 1, 4, 2, 0, 7]} +{"sent_id": [1, 2, 6, 8, 9, 0]} +{"sent_id": [1, 3, 2, 17, 0, 11]} +{"sent_id": [2, 8, 3, 6, 1, 4]} +{"sent_id": [4, 0, 1, 2, 5, 8]} +{"sent_id": [7, 2, 3, 6, 0, 12]} +{"sent_id": [1, 0, 2, 8, 5, 3]} +{"sent_id": [0, 4, 3, 19, 5, 6]} +{"sent_id": [1, 0, 3, 4, 13, 11]} +{"sent_id": [4, 10, 3, 2, 5, 6]} +{"sent_id": [4, 1, 11, 3, 5, 2]} +{"sent_id": [1, 12, 11, 2, 0, 3]} +{"sent_id": [2, 3, 4, 0, 8, 11]} +{"sent_id": [1, 2, 3, 4, 5, 6]} +{"sent_id": [1, 2, 4, 8, 0, 7]} +{"sent_id": [4, 2, 1, 3, 8, 5]} +{"sent_id": [3, 2, 4, 9, 1, 10]} +{"sent_id": [2, 4, 3, 5, 10, 9]} +{"sent_id": [0, 10, 4, 3, 2, 1]} +{"sent_id": [3, 0, 5, 1, 4, 9]} +{"sent_id": [0, 3, 1, 4, 2, 8]} +{"sent_id": [3, 0, 4, 1, 17, 5]} +{"sent_id": [1, 2, 6, 3, 4, 5]} +{"sent_id": [1, 3, 4, 14, 2, 16]} +{"sent_id": [4, 1, 2, 13, 3, 0]} +{"sent_id": [0, 3, 4, 17, 18, 5]} +{"sent_id": [0, 4, 2, 1, 5, 8]} +{"sent_id": [0, 2, 1, 4, 3, 5]} +{"sent_id": [1, 3, 4, 5, 2, 0]} +{"sent_id": [9, 2, 4, 1, 0, 12]} +{"sent_id": [1, 3, 0, 12, 4, 2]} +{"sent_id": [2, 3, 4, 0, 5, 16]} +{"sent_id": [2, 3, 0, 12, 1, 11]} +{"sent_id": [1, 0, 3, 21, 7, 2]} +{"sent_id": [1, 2, 4, 5, 16, 9]} +{"sent_id": [0, 4, 8, 3, 1, 10]} +{"sent_id": [1, 3, 2, 0, 10, 5]} +{"sent_id": [1, 5, 4, 3, 2, 0]} +{"sent_id": [2, 6, 5, 9, 3, 4]} +{"sent_id": [1, 4, 10, 0, 5, 2]} +{"sent_id": [0, 2, 1, 3, 11, 4]} +{"sent_id": [3, 0, 12, 10, 2, 5]} +{"sent_id": [3, 11, 2, 8, 12, 10]} +{"sent_id": [2, 1, 3, 0, 4, 5]} +{"sent_id": [2, 3, 0, 4, 1, 8]} +{"sent_id": [2, 9, 4, 3, 10, 1]} +{"sent_id": [1, 3, 16, 4, 8, 6]} +{"sent_id": [1, 2, 4, 6, 8, 5]} +{"sent_id": [0, 2, 1, 7, 5, 6]} +{"sent_id": [0, 1, 6, 11, 13, 2]} +{"sent_id": [1, 2, 4, 15, 3, 12]} +{"sent_id": [2, 1, 0, 9, 4, 13]} +{"sent_id": [1, 2, 3, 7, 0, 9]} +{"sent_id": [1, 0, 2, 3, 6, 4]} +{"sent_id": [3, 1, 9, 8, 2, 6]} +{"sent_id": [2, 1, 6, 0, 4, 8]} +{"sent_id": [3, 2, 1, 6, 7, 10]} +{"sent_id": [1, 0, 2, 6, 8, 7]} +{"sent_id": [3, 2, 0, 1, 13, 14]} +{"sent_id": [2, 3, 0, 12, 10, 6]} +{"sent_id": [12, 1, 0, 10, 16, 11]} +{"sent_id": [1, 4, 8, 9, 7, 0]} +{"sent_id": [3, 5, 4, 2, 11, 6]} +{"sent_id": [9, 2, 0, 4, 1, 10]} +{"sent_id": [3, 4, 16, 6, 10, 5]} +{"sent_id": [3, 0, 1, 7, 5, 4]} +{"sent_id": [7, 0, 3, 8, 4, 1]} +{"sent_id": [1, 10, 11, 4, 3, 0]} +{"sent_id": [1, 3, 2, 4, 5, 11]} +{"sent_id": [2, 1, 0, 11, 3, 9]} +{"sent_id": [1, 2, 4, 3, 0, 9]} +{"sent_id": [1, 2, 0, 5, 8, 10]} +{"sent_id": [1, 3, 5, 6, 2, 7]} +{"sent_id": [14, 1, 13, 11, 3, 12]} +{"sent_id": [3, 1, 0, 2, 11, 8]} +{"sent_id": [1, 3, 12, 0, 11, 5]} +{"sent_id": [0, 1, 10, 8, 9, 2]} +{"sent_id": [0, 1, 3, 8, 2, 12]} +{"sent_id": [3, 2, 1, 10, 4, 0]} +{"sent_id": [1, 3, 8, 0, 2, 16]} +{"sent_id": [1, 4, 8, 2, 10, 0]} +{"sent_id": [3, 1, 2, 4, 6, 9]} +{"sent_id": [1, 3, 4, 0, 10, 2]} +{"sent_id": [1, 3, 4, 2, 14, 7]} +{"sent_id": [3, 11, 0, 4, 1, 6]} +{"sent_id": [0, 5, 1, 9, 2, 4]} +{"sent_id": [4, 0, 1, 11, 2, 6]} +{"sent_id": [4, 8, 5, 1, 7, 6]} +{"sent_id": [0, 11, 10, 2, 3, 7]} +{"sent_id": [3, 1, 6, 9, 10, 12]} +{"sent_id": [1, 2, 4, 8, 5, 11]} +{"sent_id": [1, 3, 2, 0, 12, 9]} +{"sent_id": [1, 2, 11, 5, 0, 12]} +{"sent_id": [1, 2, 5, 0, 6, 4]} +{"sent_id": [3, 10, 12, 4, 1, 2]} +{"sent_id": [2, 1, 6, 4, 0, 5]} +{"sent_id": [1, 3, 2, 11, 4, 0]} +{"sent_id": [1, 2, 3, 11, 10, 8]} +{"sent_id": [0, 2, 6, 3, 12, 7]} +{"sent_id": [3, 4, 1, 0, 2, 12]} +{"sent_id": [3, 2, 12, 5, 4, 0]} +{"sent_id": [1, 2, 8, 7, 19, 4]} +{"sent_id": [4, 2, 7, 8, 15, 10]} +{"sent_id": [0, 3, 5, 4, 9, 6]} +{"sent_id": [1, 0, 5, 9, 7, 4]} +{"sent_id": [0, 3, 2, 5, 1, 12]} +{"sent_id": [1, 3, 11, 2, 5, 0]} +{"sent_id": [1, 2, 6, 4, 0, 10]} +{"sent_id": [3, 0, 11, 4, 1, 2]} +{"sent_id": [3, 2, 4, 18, 7, 15]} +{"sent_id": [1, 2, 5, 8, 9, 4]} +{"sent_id": [1, 3, 4, 2, 7, 5]} +{"sent_id": [1, 2, 3, 0, 5, 4]} +{"sent_id": [1, 5, 2, 0, 11, 6]} +{"sent_id": [3, 4, 2, 1, 7, 6]} +{"sent_id": [2, 5, 1, 4, 6, 8]} +{"sent_id": [1, 2, 5, 3, 7, 4]} +{"sent_id": [0, 1, 7, 6, 5, 3]} +{"sent_id": [1, 2, 5, 3, 0, 15]} +{"sent_id": [1, 12, 2, 10, 13, 15]} +{"sent_id": [3, 2, 4, 1, 7, 8]} +{"sent_id": [4, 1, 0, 5, 6, 7]} +{"sent_id": [1, 3, 4, 2, 12, 11]} +{"sent_id": [0, 2, 1, 4, 7, 6]} +{"sent_id": [4, 8, 1, 7, 3, 14]} +{"sent_id": [7, 3, 11, 8, 2, 1]} +{"sent_id": [1, 3, 12, 4, 2, 0]} +{"sent_id": [0, 5, 1, 10, 2, 4]} +{"sent_id": [0, 3, 1, 18, 2, 4]} +{"sent_id": [2, 1, 7, 3, 6, 4]} +{"sent_id": [8, 14, 0, 7, 3, 15]} +{"sent_id": [1, 3, 9, 10, 5, 2]} +{"sent_id": [2, 1, 3, 4, 5, 6]} +{"sent_id": [3, 10, 1, 15, 0, 9]} +{"sent_id": [3, 2, 8, 7, 9, 5]} +{"sent_id": [1, 4, 11, 0, 2, 12]} +{"sent_id": [1, 2, 3, 0, 4, 5]} +{"sent_id": [4, 3, 5, 8, 11, 2]} +{"sent_id": [2, 3, 6, 1, 5, 4]} +{"sent_id": [3, 2, 1, 4, 8, 9]} +{"sent_id": [1, 2, 5, 4, 12, 3]} +{"sent_id": [2, 1, 3, 6, 7, 5]} +{"sent_id": [5, 13, 4, 2, 3, 14]} +{"sent_id": [10, 2, 11, 1, 4, 3]} +{"sent_id": [4, 10, 0, 11, 2, 1]} +{"sent_id": [2, 6, 4, 1, 0, 11]} +{"sent_id": [3, 2, 7, 8, 17, 9]} +{"sent_id": [4, 16, 3, 2, 1, 5]} +{"sent_id": [1, 7, 4, 5, 2, 11]} +{"sent_id": [0, 2, 1, 7, 5, 8]} +{"sent_id": [1, 0, 5, 14, 3, 20]} +{"sent_id": [10, 5, 2, 1, 7, 6]} +{"sent_id": [1, 2, 3, 8, 4, 10]} +{"sent_id": [1, 2, 6, 7, 3, 8]} +{"sent_id": [2, 8, 6, 3, 7, 10]} +{"sent_id": [1, 2, 3, 7, 4, 6]} +{"sent_id": [12, 3, 1, 9, 2, 4]} +{"sent_id": [9, 15, 17, 12, 5, 7]} +{"sent_id": [1, 2, 0, 6, 5, 3]} +{"sent_id": [2, 0, 14, 5, 3, 1]} +{"sent_id": [4, 6, 16, 5, 13, 17]} +{"sent_id": [1, 2, 15, 6, 5, 16]} +{"sent_id": [2, 7, 1, 13, 10, 9]} +{"sent_id": [9, 2, 10, 3, 0, 4]} +{"sent_id": [0, 3, 1, 11, 2, 13]} +{"sent_id": [5, 0, 14, 3, 8, 15]} +{"sent_id": [1, 0, 5, 9, 2, 4]} +{"sent_id": [1, 2, 5, 6, 4, 0]} +{"sent_id": [0, 8, 3, 2, 9, 7]} +{"sent_id": [1, 3, 7, 4, 11, 9]} +{"sent_id": [1, 2, 0, 5, 8, 6]} +{"sent_id": [3, 4, 19, 18, 0, 2]} +{"sent_id": [1, 3, 10, 4, 5, 14]} +{"sent_id": [1, 5, 2, 4, 6, 10]} +{"sent_id": [5, 7, 10, 3, 4, 1]} +{"sent_id": [4, 1, 2, 0, 7, 5]} +{"sent_id": [2, 1, 11, 12, 15, 14]} +{"sent_id": [5, 4, 10, 9, 17, 6]} +{"sent_id": [4, 16, 0, 6, 2, 1]} +{"sent_id": [1, 4, 5, 7, 6, 12]} +{"sent_id": [2, 3, 0, 10, 4, 1]} +{"sent_id": [1, 3, 2, 6, 0, 4]} +{"sent_id": [2, 1, 8, 3, 4, 0]} +{"sent_id": [3, 4, 1, 2, 12, 6]} +{"sent_id": [1, 2, 6, 14, 3, 7]} +{"sent_id": [3, 10, 9, 1, 4, 2]} +{"sent_id": [4, 0, 2, 1, 3, 5]} +{"sent_id": [4, 2, 1, 3, 6, 5]} +{"sent_id": [1, 3, 0, 2, 4, 13]} +{"sent_id": [3, 2, 1, 6, 4, 0]} +{"sent_id": [0, 1, 2, 9, 3, 7]} +{"sent_id": [3, 4, 1, 15, 9, 5]} +{"sent_id": [4, 0, 1, 2, 9, 3]} +{"sent_id": [11, 0, 3, 1, 2, 13]} +{"sent_id": [2, 1, 0, 5, 13, 14]} +{"sent_id": [1, 0, 2, 4, 6, 3]} +{"sent_id": [1, 7, 0, 2, 3, 8]} +{"sent_id": [0, 3, 4, 13, 1, 10]} +{"sent_id": [4, 14, 3, 15, 2, 5]} +{"sent_id": [0, 1, 11, 2, 3, 5]} +{"sent_id": [5, 6, 2, 4, 3, 1]} +{"sent_id": [0, 2, 3, 12, 4, 1]} +{"sent_id": [2, 4, 1, 3, 5, 10]} +{"sent_id": [2, 1, 8, 9, 4, 5]} +{"sent_id": [1, 8, 2, 3, 5, 4]} +{"sent_id": [0, 3, 1, 4, 2, 9]} +{"sent_id": [2, 1, 3, 14, 10, 7]} +{"sent_id": [3, 0, 10, 4, 1, 9]} +{"sent_id": [4, 1, 5, 3, 2, 12]} +{"sent_id": [1, 3, 2, 6, 0, 10]} +{"sent_id": [3, 13, 0, 2, 1, 5]} +{"sent_id": [2, 1, 9, 5, 11, 0]} +{"sent_id": [3, 14, 5, 2, 4, 0]} +{"sent_id": [4, 9, 8, 0, 15, 1]} +{"sent_id": [1, 5, 9, 6, 2, 12]} +{"sent_id": [3, 0, 4, 5, 7, 6]} +{"sent_id": [0, 3, 2, 4, 1, 5]} +{"sent_id": [5, 11, 12, 13, 4, 1]} +{"sent_id": [1, 2, 9, 0, 11, 6]} +{"sent_id": [3, 2, 1, 5, 4, 6]} +{"sent_id": [2, 7, 3, 1, 8, 0]} +{"sent_id": [1, 2, 0, 6, 9, 5]} +{"sent_id": [5, 1, 6, 2, 7, 3]} +{"sent_id": [1, 2, 0, 4, 8, 3]} +{"sent_id": [3, 2, 4, 5, 8, 1]} +{"sent_id": [3, 5, 4, 0, 2, 9]} +{"sent_id": [1, 2, 6, 4, 3, 7]} +{"sent_id": [1, 2, 5, 3, 6, 8]} +{"sent_id": [2, 1, 6, 3, 5, 0]} +{"sent_id": [10, 5, 6, 1, 2, 3]} +{"sent_id": [1, 2, 9, 0, 12, 15]} +{"sent_id": [1, 2, 0, 3, 6, 5]} +{"sent_id": [4, 2, 3, 6, 5, 10]} +{"sent_id": [3, 12, 4, 17, 0, 5]} +{"sent_id": [4, 1, 2, 5, 6, 3]} +{"sent_id": [1, 2, 0, 15, 9, 8]} +{"sent_id": [2, 1, 7, 16, 3, 0]} +{"sent_id": [1, 8, 5, 4, 2, 0]} +{"sent_id": [0, 4, 8, 3, 5, 2]} +{"sent_id": [0, 1, 4, 3, 8, 2]} +{"sent_id": [3, 4, 17, 5, 0, 1]} +{"sent_id": [1, 2, 4, 5, 6, 10]} +{"sent_id": [0, 8, 6, 1, 3, 2]} +{"sent_id": [1, 2, 3, 10, 11, 5]} +{"sent_id": [7, 6, 9, 13, 19, 8]} +{"sent_id": [5, 3, 2, 4, 7, 8]} +{"sent_id": [1, 2, 8, 0, 9, 13]} +{"sent_id": [3, 12, 0, 4, 1, 2]} +{"sent_id": [3, 1, 8, 2, 9, 5]} +{"sent_id": [11, 12, 7, 1, 6, 18]} +{"sent_id": [0, 1, 8, 7, 2, 9]} +{"sent_id": [0, 1, 5, 4, 16, 6]} +{"sent_id": [1, 6, 4, 3, 10, 5]} +{"sent_id": [9, 2, 10, 11, 1, 4]} +{"sent_id": [3, 1, 2, 0, 6, 8]} +{"sent_id": [0, 19, 5, 2, 20, 1]} +{"sent_id": [3, 11, 0, 6, 5, 1]} +{"sent_id": [1, 2, 4, 3, 20, 5]} +{"sent_id": [4, 3, 20, 1, 9, 2]} +{"sent_id": [1, 2, 4, 9, 10, 11]} +{"sent_id": [10, 11, 12, 13, 0, 1]} +{"sent_id": [0, 1, 3, 4, 16, 2]} +{"sent_id": [2, 4, 3, 1, 0, 7]} +{"sent_id": [3, 0, 1, 18, 12, 7]} +{"sent_id": [4, 1, 2, 13, 3, 0]} +{"sent_id": [2, 1, 10, 12, 11, 3]} +{"sent_id": [1, 4, 2, 3, 5, 0]} +{"sent_id": [0, 1, 16, 3, 4, 17]} +{"sent_id": [3, 9, 0, 2, 1, 4]} +{"sent_id": [1, 4, 2, 0, 6, 13]} +{"sent_id": [1, 2, 3, 12, 6, 5]} +{"sent_id": [8, 9, 6, 10, 2, 0]} +{"sent_id": [1, 3, 2, 4, 6, 5]} +{"sent_id": [4, 1, 5, 3, 6, 2]} +{"sent_id": [3, 0, 4, 1, 5, 9]} +{"sent_id": [2, 4, 7, 0, 3, 1]} +{"sent_id": [2, 9, 16, 1, 17, 0]} +{"sent_id": [3, 10, 1, 2, 11, 9]} +{"sent_id": [2, 3, 1, 8, 9, 4]} +{"sent_id": [0, 1, 2, 6, 8, 14]} +{"sent_id": [3, 11, 2, 1, 5, 6]} +{"sent_id": [3, 1, 6, 8, 16, 5]} +{"sent_id": [1, 2, 0, 8, 3, 11]} +{"sent_id": [3, 14, 1, 0, 11, 2]} +{"sent_id": [3, 1, 2, 0, 9, 7]} +{"sent_id": [2, 1, 0, 7, 5, 6]} +{"sent_id": [1, 6, 4, 5, 2, 14]} +{"sent_id": [8, 1, 3, 6, 2, 10]} +{"sent_id": [6, 1, 11, 7, 5, 18]} +{"sent_id": [1, 2, 10, 3, 9, 0]} +{"sent_id": [4, 5, 1, 3, 0, 6]} +{"sent_id": [1, 5, 7, 21, 4, 12]} +{"sent_id": [2, 3, 10, 7, 12, 11]} +{"sent_id": [2, 3, 9, 4, 6, 1]} +{"sent_id": [4, 1, 6, 0, 7, 3]} +{"sent_id": [3, 1, 0, 4, 2, 6]} +{"sent_id": [0, 1, 4, 10, 2, 11]} +{"sent_id": [8, 4, 19, 9, 14, 0]} +{"sent_id": [1, 9, 0, 3, 10, 4]} +{"sent_id": [0, 2, 4, 1, 3, 12]} +{"sent_id": [2, 1, 3, 4, 15, 7]} +{"sent_id": [3, 2, 1, 6, 13, 5]} +{"sent_id": [3, 4, 8, 11, 2, 1]} +{"sent_id": [5, 1, 2, 4, 7, 6]} +{"sent_id": [0, 4, 2, 10, 1, 5]} +{"sent_id": [2, 3, 0, 6, 1, 7]} +{"sent_id": [4, 1, 2, 6, 0, 3]} +{"sent_id": [1, 8, 3, 5, 2, 4]} +{"sent_id": [0, 12, 3, 4, 7, 11]} +{"sent_id": [5, 1, 8, 0, 2, 3]} +{"sent_id": [1, 2, 3, 0, 8, 7]} +{"sent_id": [0, 3, 1, 14, 6, 2]} +{"sent_id": [2, 1, 4, 0, 7, 5]} +{"sent_id": [5, 1, 6, 2, 7, 10]} +{"sent_id": [4, 1, 8, 2, 3, 7]} +{"sent_id": [2, 3, 1, 8, 7, 0]} +{"sent_id": [3, 2, 9, 4, 6, 5]} +{"sent_id": [3, 2, 6, 1, 4, 11]} +{"sent_id": [5, 1, 0, 7, 2, 9]} +{"sent_id": [1, 6, 7, 0, 2, 5]} +{"sent_id": [3, 4, 2, 1, 10, 0]} +{"sent_id": [1, 7, 2, 11, 13, 3]} +{"sent_id": [2, 3, 5, 1, 9, 4]} +{"sent_id": [10, 0, 13, 6, 11, 12]} +{"sent_id": [3, 14, 5, 7, 10, 11]} +{"sent_id": [3, 0, 4, 15, 9, 2]} +{"sent_id": [1, 2, 3, 0, 4, 8]} +{"sent_id": [3, 8, 1, 2, 9, 0]} +{"sent_id": [0, 9, 2, 12, 3, 8]} +{"sent_id": [1, 7, 0, 12, 14, 16]} +{"sent_id": [4, 1, 2, 10, 3, 0]} +{"sent_id": [3, 0, 2, 5, 11, 4]} +{"sent_id": [1, 3, 2, 7, 0, 11]} +{"sent_id": [3, 2, 8, 7, 4, 5]} +{"sent_id": [1, 2, 4, 6, 7, 5]} +{"sent_id": [4, 2, 5, 3, 0, 6]} +{"sent_id": [0, 1, 3, 9, 8, 7]} +{"sent_id": [0, 3, 11, 1, 4, 6]} +{"sent_id": [2, 7, 12, 4, 1, 9]} +{"sent_id": [0, 3, 1, 6, 4, 11]} +{"sent_id": [2, 0, 3, 6, 11, 1]} +{"sent_id": [1, 2, 7, 9, 0, 13]} +{"sent_id": [3, 0, 5, 18, 2, 9]} +{"sent_id": [0, 10, 1, 11, 12, 3]} +{"sent_id": [0, 1, 8, 4, 5, 2]} +{"sent_id": [2, 3, 1, 4, 5, 7]} +{"sent_id": [1, 2, 9, 10, 4, 8]} +{"sent_id": [0, 2, 1, 4, 8, 3]} +{"sent_id": [0, 3, 2, 1, 4, 10]} +{"sent_id": [1, 2, 5, 6, 7, 0]} +{"sent_id": [6, 2, 0, 4, 5, 14]} +{"sent_id": [2, 6, 0, 3, 4, 11]} +{"sent_id": [1, 2, 0, 3, 5, 4]} +{"sent_id": [13, 3, 14, 0, 1, 4]} +{"sent_id": [4, 1, 3, 6, 12, 11]} +{"sent_id": [5, 2, 4, 13, 12, 6]} +{"sent_id": [1, 3, 2, 4, 5, 12]} +{"sent_id": [5, 1, 2, 7, 6, 3]} +{"sent_id": [0, 4, 9, 3, 1, 2]} +{"sent_id": [3, 4, 2, 0, 5, 1]} +{"sent_id": [1, 2, 6, 0, 4, 3]} +{"sent_id": [0, 6, 2, 1, 5, 8]} +{"sent_id": [1, 2, 5, 0, 6, 4]} +{"sent_id": [3, 4, 0, 5, 16, 1]} +{"sent_id": [1, 6, 3, 4, 11, 5]} +{"sent_id": [5, 4, 10, 3, 2, 1]} +{"sent_id": [1, 12, 16, 4, 2, 14]} +{"sent_id": [2, 1, 3, 6, 5, 4]} +{"sent_id": [1, 0, 5, 2, 11, 6]} +{"sent_id": [2, 18, 0, 1, 10, 21]} +{"sent_id": [6, 7, 0, 5, 8, 2]} +{"sent_id": [0, 3, 1, 2, 5, 4]} +{"sent_id": [2, 5, 0, 7, 1, 4]} +{"sent_id": [2, 4, 16, 3, 10, 1]} +{"sent_id": [1, 3, 4, 10, 2, 5]} +{"sent_id": [2, 3, 4, 7, 1, 6]} +{"sent_id": [1, 2, 4, 7, 6, 3]} +{"sent_id": [3, 1, 6, 0, 5, 15]} +{"sent_id": [1, 2, 4, 3, 6, 19]} +{"sent_id": [0, 1, 7, 3, 5, 2]} +{"sent_id": [2, 3, 15, 7, 11, 1]} +{"sent_id": [2, 6, 1, 11, 7, 3]} +{"sent_id": [4, 1, 3, 2, 8, 0]} +{"sent_id": [5, 6, 1, 7, 2, 3]} +{"sent_id": [5, 3, 4, 1, 2, 18]} +{"sent_id": [1, 4, 2, 9, 11, 6]} +{"sent_id": [0, 2, 1, 7, 11, 5]} +{"sent_id": [1, 4, 3, 10, 11, 2]} +{"sent_id": [2, 4, 1, 10, 0, 15]} +{"sent_id": [2, 0, 3, 1, 6, 7]} +{"sent_id": [2, 1, 4, 3, 0, 12]} +{"sent_id": [1, 2, 3, 11, 5, 6]} +{"sent_id": [1, 3, 2, 7, 5, 6]} +{"sent_id": [1, 2, 4, 14, 0, 5]} +{"sent_id": [4, 1, 2, 13, 5, 7]} +{"sent_id": [10, 4, 9, 2, 0, 1]} +{"sent_id": [2, 1, 6, 4, 7, 5]} +{"sent_id": [1, 8, 2, 7, 3, 9]} +{"sent_id": [2, 0, 12, 8, 6, 7]} +{"sent_id": [4, 0, 5, 7, 1, 2]} +{"sent_id": [0, 10, 1, 7, 8, 3]} +{"sent_id": [2, 4, 7, 5, 9, 0]} +{"sent_id": [1, 2, 15, 5, 9, 3]} +{"sent_id": [8, 18, 9, 13, 3, 16]} +{"sent_id": [2, 5, 7, 4, 0, 1]} +{"sent_id": [4, 5, 7, 8, 9, 6]} +{"sent_id": [1, 2, 0, 12, 4, 14]} +{"sent_id": [9, 5, 11, 4, 1, 3]} +{"sent_id": [1, 3, 2, 9, 11, 4]} +{"sent_id": [6, 0, 20, 15, 19, 16]} +{"sent_id": [4, 0, 1, 2, 3, 18]} +{"sent_id": [3, 2, 0, 1, 4, 8]} +{"sent_id": [4, 1, 5, 2, 3, 6]} +{"sent_id": [6, 0, 1, 2, 16, 15]} +{"sent_id": [2, 8, 3, 1, 0, 12]} +{"sent_id": [7, 9, 3, 5, 2, 4]} +{"sent_id": [2, 3, 1, 11, 0, 9]} +{"sent_id": [3, 4, 0, 2, 5, 13]} +{"sent_id": [3, 1, 5, 7, 6, 2]} +{"sent_id": [1, 2, 5, 4, 18, 7]} +{"sent_id": [5, 2, 3, 1, 4, 7]} +{"sent_id": [1, 2, 8, 3, 0, 4]} +{"sent_id": [0, 3, 7, 4, 5, 6]} +{"sent_id": [1, 5, 3, 4, 2, 8]} +{"sent_id": [3, 1, 6, 5, 2, 4]} +{"sent_id": [3, 1, 2, 9, 4, 5]} +{"sent_id": [3, 2, 1, 6, 8, 11]} +{"sent_id": [0, 1, 4, 3, 2, 8]} +{"sent_id": [5, 1, 6, 2, 3, 4]} +{"sent_id": [3, 0, 1, 5, 2, 11]} +{"sent_id": [3, 4, 2, 6, 9, 11]} +{"sent_id": [8, 6, 5, 0, 25, 1]} +{"sent_id": [1, 14, 3, 0, 10, 9]} +{"sent_id": [3, 4, 9, 10, 0, 2]} +{"sent_id": [3, 2, 5, 7, 8, 4]} +{"sent_id": [3, 2, 8, 4, 7, 6]} +{"sent_id": [3, 1, 4, 12, 2, 10]} +{"sent_id": [3, 2, 7, 4, 5, 6]} +{"sent_id": [2, 1, 0, 5, 9, 3]} +{"sent_id": [3, 5, 4, 1, 0, 2]} +{"sent_id": [2, 1, 5, 6, 8, 3]} +{"sent_id": [3, 1, 15, 2, 14, 0]} +{"sent_id": [2, 3, 8, 6, 5, 7]} +{"sent_id": [5, 0, 4, 3, 1, 2]} +{"sent_id": [1, 4, 6, 8, 2, 3]} +{"sent_id": [3, 0, 4, 2, 1, 7]} +{"sent_id": [2, 1, 4, 0, 13, 7]} +{"sent_id": [3, 10, 2, 0, 1, 11]} +{"sent_id": [4, 3, 1, 2, 7, 5]} +{"sent_id": [4, 8, 2, 9, 5, 10]} +{"sent_id": [2, 3, 0, 4, 7, 5]} +{"sent_id": [2, 1, 6, 12, 14, 5]} +{"sent_id": [5, 6, 0, 13, 3, 2]} +{"sent_id": [3, 1, 0, 12, 5, 2]} +{"sent_id": [2, 0, 7, 4, 1, 3]} +{"sent_id": [4, 1, 0, 5, 2, 6]} +{"sent_id": [3, 6, 10, 0, 2, 14]} +{"sent_id": [1, 6, 4, 2, 0, 3]} +{"sent_id": [1, 0, 2, 5, 6, 9]} +{"sent_id": [3, 2, 10, 1, 4, 9]} +{"sent_id": [3, 0, 1, 8, 2, 7]} +{"sent_id": [1, 2, 5, 4, 7, 3]} +{"sent_id": [0, 1, 16, 2, 3, 13]} +{"sent_id": [2, 1, 4, 5, 3, 6]} +{"sent_id": [1, 5, 0, 8, 10, 4]} +{"sent_id": [4, 1, 0, 5, 2, 8]} +{"sent_id": [2, 0, 4, 3, 18, 6]} +{"sent_id": [8, 1, 0, 2, 4, 3]} +{"sent_id": [0, 2, 3, 1, 4, 5]} +{"sent_id": [1, 2, 3, 0, 6, 5]} +{"sent_id": [1, 3, 12, 2, 8, 5]} +{"sent_id": [3, 0, 1, 2, 17, 4]} +{"sent_id": [1, 3, 15, 4, 13, 8]} +{"sent_id": [4, 12, 3, 0, 11, 13]} +{"sent_id": [1, 2, 3, 7, 4, 0]} +{"sent_id": [1, 2, 3, 5, 9, 6]} +{"sent_id": [1, 9, 4, 0, 3, 10]} +{"sent_id": [3, 0, 8, 9, 6, 7]} +{"sent_id": [4, 2, 3, 14, 0, 15]} +{"sent_id": [4, 7, 1, 3, 12, 10]} +{"sent_id": [3, 2, 13, 7, 0, 15]} +{"sent_id": [1, 2, 5, 6, 3, 4]} +{"sent_id": [1, 2, 0, 4, 3, 5]} +{"sent_id": [5, 8, 3, 7, 15, 1]} +{"sent_id": [3, 8, 2, 1, 0, 9]} +{"sent_id": [2, 1, 4, 0, 12, 10]} +{"sent_id": [6, 3, 7, 2, 11, 1]} +{"sent_id": [5, 8, 4, 6, 9, 10]} +{"sent_id": [4, 9, 3, 1, 2, 6]} +{"sent_id": [2, 4, 3, 6, 1, 9]} +{"sent_id": [2, 3, 4, 8, 0, 9]} +{"sent_id": [1, 0, 3, 5, 9, 8]} +{"sent_id": [4, 0, 10, 1, 19, 3]} +{"sent_id": [3, 2, 4, 0, 1, 15]} +{"sent_id": [2, 3, 4, 1, 5, 0]} +{"sent_id": [3, 1, 2, 0, 4, 7]} +{"sent_id": [8, 10, 9, 11, 5, 12]} +{"sent_id": [3, 1, 2, 4, 6, 11]} +{"sent_id": [3, 2, 1, 8, 5, 4]} +{"sent_id": [4, 1, 0, 9, 5, 7]} +{"sent_id": [2, 4, 3, 5, 0, 8]} +{"sent_id": [3, 1, 9, 15, 2, 10]} +{"sent_id": [3, 1, 4, 8, 0, 9]} +{"sent_id": [1, 2, 0, 4, 3, 6]} +{"sent_id": [2, 3, 4, 1, 5, 11]} +{"sent_id": [6, 0, 17, 1, 2, 3]} +{"sent_id": [3, 0, 4, 1, 2, 8]} +{"sent_id": [1, 3, 5, 13, 2, 10]} +{"sent_id": [17, 18, 14, 6, 16, 1]} +{"sent_id": [8, 0, 1, 3, 2, 9]} +{"sent_id": [1, 3, 14, 6, 9, 2]} +{"sent_id": [3, 1, 2, 4, 12, 5]} +{"sent_id": [9, 4, 1, 5, 2, 7]} +{"sent_id": [4, 3, 2, 0, 5, 1]} +{"sent_id": [1, 2, 3, 12, 4, 0]} +{"sent_id": [2, 1, 7, 3, 6, 0]} +{"sent_id": [2, 1, 3, 6, 0, 5]} +{"sent_id": [2, 0, 7, 15, 3, 11]} +{"sent_id": [1, 8, 9, 2, 0, 7]} +{"sent_id": [11, 0, 14, 9, 17, 7]} +{"sent_id": [2, 1, 0, 3, 4, 15]} +{"sent_id": [1, 2, 8, 6, 5, 4]} +{"sent_id": [1, 3, 0, 5, 7, 2]} +{"sent_id": [0, 1, 12, 2, 5, 3]} +{"sent_id": [2, 1, 4, 5, 12, 8]} +{"sent_id": [5, 3, 6, 1, 13, 4]} +{"sent_id": [0, 2, 8, 7, 1, 3]} +{"sent_id": [2, 6, 3, 1, 5, 11]} +{"sent_id": [1, 0, 10, 3, 2, 4]} +{"sent_id": [1, 3, 0, 5, 9, 6]} +{"sent_id": [0, 3, 9, 2, 1, 5]} +{"sent_id": [0, 2, 1, 4, 3, 5]} +{"sent_id": [15, 9, 2, 0, 1, 5]} +{"sent_id": [3, 0, 2, 1, 20, 5]} +{"sent_id": [3, 8, 1, 2, 15, 7]} +{"sent_id": [3, 2, 16, 7, 10, 12]} +{"sent_id": [2, 3, 4, 0, 8, 7]} +{"sent_id": [3, 11, 9, 6, 7, 2]} +{"sent_id": [1, 2, 0, 4, 8, 3]} +{"sent_id": [1, 3, 4, 17, 2, 16]} +{"sent_id": [2, 0, 1, 5, 7, 8]} +{"sent_id": [3, 1, 2, 10, 7, 8]} +{"sent_id": [3, 0, 2, 1, 5, 7]} +{"sent_id": [3, 1, 8, 7, 4, 2]} +{"sent_id": [2, 3, 1, 0, 9, 4]} +{"sent_id": [3, 8, 0, 4, 1, 7]} +{"sent_id": [1, 2, 7, 4, 8, 3]} +{"sent_id": [2, 14, 3, 0, 4, 12]} +{"sent_id": [2, 4, 3, 0, 6, 9]} +{"sent_id": [3, 4, 5, 9, 0, 12]} +{"sent_id": [3, 1, 0, 2, 7, 4]} +{"sent_id": [6, 3, 2, 1, 5, 10]} +{"sent_id": [1, 13, 0, 3, 2, 15]} +{"sent_id": [3, 1, 8, 2, 4, 0]} +{"sent_id": [7, 2, 4, 1, 3, 8]} +{"sent_id": [2, 4, 3, 8, 0, 21]} +{"sent_id": [1, 2, 4, 5, 3, 6]} +{"sent_id": [3, 1, 2, 4, 10, 6]} +{"sent_id": [3, 8, 9, 4, 6, 7]} +{"sent_id": [1, 3, 5, 2, 6, 11]} +{"sent_id": [1, 2, 0, 7, 10, 3]} +{"sent_id": [1, 2, 4, 14, 0, 5]} +{"sent_id": [4, 2, 1, 5, 14, 8]} +{"sent_id": [3, 10, 1, 11, 5, 6]} +{"sent_id": [3, 0, 1, 2, 5, 4]} +{"sent_id": [2, 10, 0, 12, 4, 14]} +{"sent_id": [3, 5, 4, 9, 1, 11]} +{"sent_id": [4, 3, 1, 2, 9, 0]} +{"sent_id": [3, 1, 6, 5, 10, 12]} +{"sent_id": [3, 2, 1, 10, 5, 4]} +{"sent_id": [3, 4, 1, 14, 2, 17]} +{"sent_id": [4, 2, 5, 0, 1, 11]} +{"sent_id": [3, 1, 2, 0, 9, 14]} +{"sent_id": [2, 1, 3, 14, 5, 6]} +{"sent_id": [1, 11, 2, 5, 0, 7]} +{"sent_id": [2, 10, 8, 5, 4, 11]} +{"sent_id": [13, 3, 1, 2, 4, 0]} +{"sent_id": [3, 8, 16, 9, 11, 2]} +{"sent_id": [3, 5, 2, 1, 4, 0]} +{"sent_id": [4, 1, 5, 3, 10, 2]} +{"sent_id": [5, 1, 2, 4, 7, 6]} +{"sent_id": [2, 6, 8, 5, 3, 1]} +{"sent_id": [1, 2, 7, 4, 9, 3]} +{"sent_id": [4, 1, 6, 0, 23, 5]} +{"sent_id": [5, 3, 1, 4, 2, 0]} +{"sent_id": [12, 10, 8, 0, 1, 20]} +{"sent_id": [4, 12, 0, 13, 3, 1]} +{"sent_id": [1, 6, 7, 4, 5, 12]} +{"sent_id": [1, 2, 3, 14, 6, 7]} +{"sent_id": [1, 6, 5, 3, 2, 0]} +{"sent_id": [2, 3, 0, 5, 4, 14]} +{"sent_id": [3, 5, 1, 4, 11, 0]} +{"sent_id": [3, 0, 1, 4, 5, 8]} +{"sent_id": [12, 4, 0, 8, 10, 1]} +{"sent_id": [0, 2, 9, 3, 12, 11]} +{"sent_id": [1, 3, 7, 4, 2, 0]} +{"sent_id": [3, 2, 0, 5, 1, 6]} +{"sent_id": [3, 1, 0, 2, 5, 19]} +{"sent_id": [2, 1, 5, 3, 4, 7]} +{"sent_id": [6, 1, 7, 3, 4, 2]} +{"sent_id": [0, 6, 20, 1, 14, 4]} +{"sent_id": [2, 1, 12, 3, 0, 4]} +{"sent_id": [5, 2, 3, 9, 1, 7]} +{"sent_id": [1, 11, 2, 0, 7, 10]} +{"sent_id": [3, 4, 8, 12, 2, 6]} +{"sent_id": [1, 8, 6, 2, 4, 0]} +{"sent_id": [1, 2, 4, 6, 0, 3]} +{"sent_id": [3, 1, 4, 5, 2, 9]} +{"sent_id": [13, 2, 5, 1, 3, 8]} +{"sent_id": [1, 2, 4, 3, 0, 10]} +{"sent_id": [7, 1, 6, 3, 8, 2]} +{"sent_id": [3, 0, 2, 14, 7, 5]} +{"sent_id": [1, 4, 2, 8, 3, 5]} +{"sent_id": [3, 4, 0, 14, 5, 9]} +{"sent_id": [1, 15, 5, 3, 4, 0]} +{"sent_id": [1, 2, 5, 4, 8, 17]} +{"sent_id": [1, 4, 2, 5, 7, 0]} +{"sent_id": [4, 2, 1, 3, 5, 0]} +{"sent_id": [4, 3, 0, 1, 2, 5]} +{"sent_id": [10, 3, 2, 7, 9, 4]} +{"sent_id": [3, 0, 1, 2, 4, 7]} +{"sent_id": [2, 4, 1, 3, 12, 18]} +{"sent_id": [2, 1, 3, 4, 6, 0]} +{"sent_id": [1, 2, 4, 5, 3, 7]} +{"sent_id": [1, 2, 3, 4, 6, 0]} +{"sent_id": [1, 4, 9, 3, 2, 10]} +{"sent_id": [6, 7, 1, 14, 19, 3]} +{"sent_id": [3, 1, 4, 2, 11, 15]} +{"sent_id": [3, 10, 6, 5, 0, 4]} +{"sent_id": [0, 1, 2, 3, 5, 6]} +{"sent_id": [1, 6, 2, 0, 4, 17]} +{"sent_id": [2, 1, 13, 3, 9, 4]} +{"sent_id": [1, 2, 4, 5, 14, 9]} +{"sent_id": [0, 4, 2, 3, 5, 1]} +{"sent_id": [1, 9, 0, 2, 17, 19]} +{"sent_id": [3, 9, 1, 4, 0, 10]} +{"sent_id": [3, 0, 5, 4, 7, 2]} +{"sent_id": [3, 6, 4, 5, 2, 1]} +{"sent_id": [0, 9, 1, 13, 3, 4]} +{"sent_id": [3, 1, 2, 9, 8, 4]} +{"sent_id": [0, 7, 14, 3, 2, 15]} +{"sent_id": [1, 3, 2, 10, 11, 0]} +{"sent_id": [1, 4, 0, 5, 8, 12]} +{"sent_id": [1, 2, 4, 13, 0, 5]} +{"sent_id": [2, 1, 4, 7, 3, 5]} +{"sent_id": [0, 3, 2, 1, 4, 12]} +{"sent_id": [1, 4, 2, 8, 9, 3]} +{"sent_id": [2, 1, 4, 5, 0, 8]} +{"sent_id": [1, 4, 2, 11, 3, 8]} +{"sent_id": [1, 0, 2, 9, 4, 3]} +{"sent_id": [2, 14, 1, 0, 6, 7]} +{"sent_id": [0, 1, 5, 2, 3, 8]} +{"sent_id": [1, 21, 16, 23, 17, 5]} +{"sent_id": [1, 2, 3, 4, 0, 6]} +{"sent_id": [1, 2, 11, 0, 7, 5]} +{"sent_id": [1, 3, 4, 2, 0, 7]} +{"sent_id": [7, 0, 6, 8, 2, 9]} +{"sent_id": [3, 1, 5, 8, 2, 7]} +{"sent_id": [1, 2, 0, 6, 15, 7]} +{"sent_id": [2, 3, 5, 17, 9, 4]} +{"sent_id": [2, 9, 8, 11, 14, 3]} +{"sent_id": [0, 4, 3, 6, 5, 2]} +{"sent_id": [11, 9, 4, 0, 8, 1]} +{"sent_id": [2, 4, 1, 3, 12, 16]} +{"sent_id": [1, 16, 2, 3, 0, 9]} +{"sent_id": [3, 5, 2, 1, 8, 6]} +{"sent_id": [8, 1, 2, 15, 0, 5]} +{"sent_id": [1, 2, 0, 8, 9, 5]} +{"sent_id": [1, 3, 5, 4, 2, 7]} +{"sent_id": [0, 1, 4, 9, 11, 2]} +{"sent_id": [3, 4, 9, 5, 1, 2]} +{"sent_id": [3, 7, 8, 6, 2, 4]} +{"sent_id": [3, 2, 8, 7, 13, 1]} +{"sent_id": [2, 1, 6, 5, 3, 12]} +{"sent_id": [0, 3, 4, 1, 2, 15]} +{"sent_id": [7, 3, 1, 2, 14, 5]} +{"sent_id": [4, 5, 17, 6, 18, 2]} +{"sent_id": [1, 4, 2, 3, 0, 12]} +{"sent_id": [1, 2, 7, 9, 5, 6]} +{"sent_id": [1, 2, 3, 5, 6, 9]} +{"sent_id": [2, 1, 3, 0, 4, 8]} +{"sent_id": [0, 1, 5, 2, 14, 4]} +{"sent_id": [6, 0, 2, 4, 3, 5]} +{"sent_id": [1, 4, 5, 3, 6, 2]} +{"sent_id": [1, 2, 0, 7, 5, 3]} +{"sent_id": [1, 2, 3, 6, 7, 0]} +{"sent_id": [3, 4, 1, 15, 10, 6]} +{"sent_id": [2, 3, 0, 5, 4, 7]} +{"sent_id": [15, 3, 4, 5, 1, 2]} +{"sent_id": [0, 1, 10, 2, 15, 3]} +{"sent_id": [0, 5, 1, 6, 4, 10]} +{"sent_id": [6, 3, 1, 7, 9, 2]} +{"sent_id": [1, 3, 2, 7, 4, 0]} +{"sent_id": [1, 2, 0, 7, 8, 4]} +{"sent_id": [3, 2, 4, 8, 5, 7]} +{"sent_id": [1, 9, 4, 0, 19, 18]} +{"sent_id": [1, 0, 2, 10, 5, 6]} +{"sent_id": [2, 7, 8, 6, 9, 5]} +{"sent_id": [1, 2, 4, 11, 7, 3]} +{"sent_id": [3, 2, 6, 5, 18, 9]} +{"sent_id": [3, 0, 14, 9, 4, 2]} +{"sent_id": [3, 2, 1, 11, 8, 7]} +{"sent_id": [2, 3, 4, 1, 6, 5]} +{"sent_id": [2, 1, 3, 7, 4, 6]} +{"sent_id": [1, 18, 4, 2, 5, 0]} +{"sent_id": [4, 0, 11, 2, 1, 6]} +{"sent_id": [0, 5, 14, 4, 1, 10]} +{"sent_id": [1, 0, 3, 6, 2, 5]} +{"sent_id": [1, 3, 4, 0, 11, 12]} +{"sent_id": [1, 2, 5, 0, 3, 10]} +{"sent_id": [11, 17, 6, 9, 3, 5]} +{"sent_id": [3, 4, 2, 1, 5, 7]} +{"sent_id": [0, 2, 7, 9, 1, 4]} +{"sent_id": [0, 3, 4, 1, 2, 5]} +{"sent_id": [1, 3, 2, 5, 9, 8]} +{"sent_id": [0, 3, 5, 1, 2, 4]} +{"sent_id": [4, 1, 3, 8, 2, 15]} +{"sent_id": [3, 2, 6, 1, 4, 12]} +{"sent_id": [3, 8, 1, 2, 4, 7]} +{"sent_id": [5, 1, 0, 7, 16, 11]} +{"sent_id": [7, 21, 6, 4, 11, 8]} +{"sent_id": [3, 1, 2, 4, 0, 17]} +{"sent_id": [3, 18, 15, 1, 7, 0]} +{"sent_id": [3, 4, 0, 14, 2, 7]} +{"sent_id": [3, 1, 2, 4, 11, 0]} +{"sent_id": [1, 2, 4, 5, 0, 11]} +{"sent_id": [1, 4, 3, 5, 2, 10]} +{"sent_id": [18, 0, 10, 2, 12, 17]} +{"sent_id": [1, 3, 10, 2, 4, 11]} +{"sent_id": [6, 1, 0, 4, 7, 5]} +{"sent_id": [1, 2, 3, 9, 0, 4]} +{"sent_id": [6, 10, 2, 9, 15, 11]} +{"sent_id": [1, 2, 4, 3, 6, 7]} +{"sent_id": [0, 2, 1, 5, 14, 4]} +{"sent_id": [1, 0, 11, 5, 10, 2]} +{"sent_id": [0, 3, 4, 1, 5, 11]} +{"sent_id": [1, 0, 9, 4, 2, 3]} +{"sent_id": [2, 1, 5, 4, 3, 8]} +{"sent_id": [3, 13, 17, 15, 5, 2]} +{"sent_id": [1, 2, 0, 9, 7, 6]} +{"sent_id": [0, 9, 4, 2, 1, 3]} +{"sent_id": [0, 1, 4, 2, 10, 7]} +{"sent_id": [1, 7, 9, 6, 0, 2]} +{"sent_id": [5, 8, 6, 15, 7, 1]} +{"sent_id": [2, 3, 13, 15, 1, 0]} +{"sent_id": [2, 3, 4, 8, 5, 9]} +{"sent_id": [14, 0, 1, 5, 2, 4]} +{"sent_id": [1, 4, 3, 9, 2, 0]} +{"sent_id": [5, 4, 3, 8, 14, 12]} +{"sent_id": [0, 1, 5, 2, 4, 7]} +{"sent_id": [0, 1, 3, 11, 8, 13]} +{"sent_id": [6, 1, 19, 11, 3, 2]} +{"sent_id": [4, 5, 0, 2, 6, 10]} +{"sent_id": [4, 1, 2, 3, 12, 8]} +{"sent_id": [0, 2, 6, 8, 14, 1]} +{"sent_id": [2, 3, 6, 1, 4, 10]} +{"sent_id": [1, 4, 5, 2, 8, 3]} +{"sent_id": [5, 4, 2, 3, 7, 8]} +{"sent_id": [4, 1, 10, 3, 0, 5]} +{"sent_id": [1, 0, 2, 5, 3, 9]} +{"sent_id": [0, 5, 9, 14, 15, 4]} +{"sent_id": [1, 4, 5, 2, 7, 15]} +{"sent_id": [3, 2, 1, 0, 4, 12]} +{"sent_id": [2, 7, 3, 6, 8, 5]} +{"sent_id": [12, 2, 1, 4, 3, 10]} +{"sent_id": [3, 1, 4, 2, 5, 0]} +{"sent_id": [1, 0, 6, 14, 15, 8]} +{"sent_id": [1, 5, 3, 2, 4, 6]} +{"sent_id": [1, 9, 7, 10, 2, 3]} +{"sent_id": [4, 0, 12, 1, 14, 7]} +{"sent_id": [4, 1, 5, 8, 14, 7]} +{"sent_id": [0, 1, 3, 4, 2, 13]} +{"sent_id": [1, 2, 3, 7, 6, 14]} +{"sent_id": [9, 0, 8, 10, 15, 11]} +{"sent_id": [6, 1, 14, 2, 3, 5]} +{"sent_id": [1, 6, 2, 4, 5, 0]} +{"sent_id": [5, 1, 3, 9, 0, 7]} +{"sent_id": [1, 2, 0, 14, 15, 13]} +{"sent_id": [2, 11, 8, 12, 1, 4]} +{"sent_id": [4, 10, 8, 7, 15, 1]} +{"sent_id": [3, 0, 6, 7, 8, 2]} +{"sent_id": [5, 8, 7, 6, 2, 1]} +{"sent_id": [3, 1, 4, 10, 2, 6]} +{"sent_id": [2, 7, 5, 18, 0, 9]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [3, 2, 5, 12, 6, 14]} +{"sent_id": [1, 2, 6, 3, 4, 5]} +{"sent_id": [1, 10, 3, 14, 11, 9]} +{"sent_id": [1, 0, 2, 14, 15, 3]} +{"sent_id": [1, 0, 2, 3, 17, 5]} +{"sent_id": [1, 2, 3, 0, 6, 4]} +{"sent_id": [4, 9, 6, 7, 5, 12]} +{"sent_id": [1, 3, 4, 2, 5, 0]} +{"sent_id": [6, 5, 13, 4, 3, 2]} +{"sent_id": [13, 6, 4, 2, 1, 5]} +{"sent_id": [1, 6, 2, 10, 11, 7]} +{"sent_id": [0, 2, 6, 7, 3, 8]} +{"sent_id": [4, 0, 5, 3, 1, 2]} +{"sent_id": [2, 1, 4, 3, 0, 8]} +{"sent_id": [1, 6, 3, 13, 2, 4]} +{"sent_id": [2, 6, 1, 5, 3, 0]} +{"sent_id": [4, 3, 5, 1, 15, 2]} +{"sent_id": [6, 3, 1, 4, 9, 7]} +{"sent_id": [11, 0, 4, 3, 8, 7]} +{"sent_id": [3, 1, 2, 5, 7, 10]} +{"sent_id": [2, 5, 3, 4, 10, 15]} +{"sent_id": [0, 3, 2, 4, 7, 10]} +{"sent_id": [0, 4, 2, 5, 3, 6]} +{"sent_id": [6, 17, 13, 3, 23, 1]} +{"sent_id": [4, 5, 14, 0, 12, 13]} +{"sent_id": [5, 6, 2, 17, 1, 4]} +{"sent_id": [2, 1, 0, 3, 7, 12]} +{"sent_id": [3, 2, 1, 9, 4, 10]} +{"sent_id": [3, 4, 2, 9, 5, 10]} +{"sent_id": [4, 8, 11, 1, 5, 3]} +{"sent_id": [1, 10, 3, 0, 2, 8]} +{"sent_id": [4, 2, 1, 3, 5, 0]} +{"sent_id": [0, 1, 8, 11, 7, 2]} +{"sent_id": [6, 4, 2, 3, 1, 0]} +{"sent_id": [0, 3, 1, 2, 6, 7]} +{"sent_id": [6, 4, 10, 7, 13, 8]} +{"sent_id": [1, 2, 4, 11, 9, 0]} +{"sent_id": [1, 9, 3, 12, 2, 5]} +{"sent_id": [0, 2, 1, 15, 14, 4]} +{"sent_id": [1, 2, 0, 4, 6, 3]} +{"sent_id": [1, 8, 3, 9, 11, 4]} +{"sent_id": [2, 0, 12, 3, 1, 4]} +{"sent_id": [5, 2, 3, 7, 8, 1]} +{"sent_id": [7, 10, 0, 9, 4, 11]} +{"sent_id": [1, 3, 2, 0, 5, 7]} +{"sent_id": [0, 2, 13, 4, 1, 3]} +{"sent_id": [3, 6, 4, 9, 5, 0]} +{"sent_id": [2, 3, 0, 4, 1, 7]} +{"sent_id": [6, 20, 3, 19, 5, 1]} +{"sent_id": [10, 8, 1, 5, 11, 6]} +{"sent_id": [3, 2, 1, 6, 4, 0]} +{"sent_id": [1, 2, 7, 10, 0, 4]} +{"sent_id": [1, 3, 0, 5, 2, 4]} +{"sent_id": [4, 5, 6, 3, 7, 15]} +{"sent_id": [3, 4, 5, 0, 2, 8]} +{"sent_id": [1, 5, 2, 6, 11, 3]} +{"sent_id": [3, 5, 1, 2, 4, 6]} +{"sent_id": [4, 6, 2, 5, 3, 18]} +{"sent_id": [10, 0, 2, 3, 11, 1]} +{"sent_id": [2, 1, 0, 13, 3, 4]} +{"sent_id": [0, 3, 1, 2, 4, 8]} +{"sent_id": [4, 5, 15, 7, 1, 16]} +{"sent_id": [0, 3, 2, 12, 4, 1]} +{"sent_id": [2, 8, 0, 20, 3, 7]} +{"sent_id": [3, 10, 2, 6, 12, 11]} +{"sent_id": [2, 0, 5, 8, 4, 7]} +{"sent_id": [7, 6, 8, 11, 3, 4]} +{"sent_id": [3, 1, 4, 7, 2, 15]} +{"sent_id": [1, 3, 2, 5, 4, 0]} +{"sent_id": [3, 1, 4, 2, 0, 6]} +{"sent_id": [3, 1, 2, 7, 6, 11]} +{"sent_id": [0, 2, 3, 1, 4, 13]} +{"sent_id": [2, 5, 11, 8, 14, 0]} +{"sent_id": [8, 6, 7, 2, 0, 3]} +{"sent_id": [1, 3, 7, 5, 4, 16]} +{"sent_id": [0, 1, 5, 2, 3, 4]} +{"sent_id": [3, 9, 1, 8, 6, 0]} +{"sent_id": [1, 2, 12, 3, 4, 5]} +{"sent_id": [0, 2, 6, 3, 14, 1]} +{"sent_id": [8, 2, 5, 0, 1, 10]} +{"sent_id": [2, 0, 5, 12, 1, 8]} +{"sent_id": [5, 6, 0, 10, 3, 9]} +{"sent_id": [0, 8, 3, 1, 2, 11]} +{"sent_id": [1, 5, 2, 9, 3, 6]} +{"sent_id": [2, 3, 13, 4, 0, 9]} +{"sent_id": [1, 9, 6, 10, 2, 14]} +{"sent_id": [3, 1, 12, 0, 4, 2]} +{"sent_id": [4, 2, 1, 3, 7, 5]} +{"sent_id": [3, 0, 8, 1, 6, 10]} +{"sent_id": [1, 2, 4, 5, 6, 15]} +{"sent_id": [1, 5, 13, 2, 7, 14]} +{"sent_id": [4, 0, 8, 1, 3, 2]} +{"sent_id": [0, 10, 11, 3, 9, 1]} +{"sent_id": [2, 4, 3, 9, 0, 8]} +{"sent_id": [3, 14, 7, 4, 2, 8]} +{"sent_id": [2, 1, 13, 12, 0, 4]} +{"sent_id": [3, 4, 2, 1, 10, 8]} +{"sent_id": [1, 3, 10, 2, 11, 0]} +{"sent_id": [1, 7, 0, 2, 8, 10]} +{"sent_id": [1, 3, 2, 0, 4, 6]} +{"sent_id": [3, 0, 5, 9, 1, 7]} +{"sent_id": [1, 2, 4, 0, 6, 5]} +{"sent_id": [1, 5, 10, 3, 2, 7]} +{"sent_id": [1, 6, 9, 5, 0, 7]} +{"sent_id": [3, 4, 1, 10, 15, 11]} +{"sent_id": [3, 1, 4, 8, 6, 14]} +{"sent_id": [8, 13, 2, 14, 18, 15]} +{"sent_id": [1, 2, 3, 4, 0, 14]} +{"sent_id": [5, 4, 3, 1, 2, 8]} +{"sent_id": [3, 1, 2, 0, 8, 9]} +{"sent_id": [2, 0, 7, 8, 9, 1]} +{"sent_id": [1, 2, 0, 3, 10, 11]} +{"sent_id": [1, 3, 5, 6, 0, 4]} +{"sent_id": [1, 3, 4, 13, 2, 0]} +{"sent_id": [1, 11, 3, 2, 0, 12]} +{"sent_id": [0, 1, 2, 4, 5, 12]} +{"sent_id": [1, 2, 3, 0, 9, 4]} +{"sent_id": [3, 1, 12, 13, 2, 5]} +{"sent_id": [1, 2, 3, 0, 4, 9]} +{"sent_id": [5, 1, 0, 6, 10, 3]} +{"sent_id": [1, 0, 3, 5, 4, 8]} +{"sent_id": [3, 1, 4, 2, 9, 12]} +{"sent_id": [0, 2, 1, 9, 3, 5]} +{"sent_id": [16, 18, 15, 14, 7, 6]} +{"sent_id": [3, 1, 2, 8, 0, 4]} +{"sent_id": [1, 2, 5, 3, 13, 4]} +{"sent_id": [2, 1, 4, 3, 8, 9]} +{"sent_id": [6, 1, 2, 7, 5, 0]} +{"sent_id": [0, 1, 10, 9, 5, 8]} +{"sent_id": [0, 2, 4, 1, 5, 12]} +{"sent_id": [3, 12, 4, 13, 1, 0]} +{"sent_id": [5, 7, 17, 6, 2, 1]} +{"sent_id": [1, 2, 5, 7, 0, 6]} +{"sent_id": [9, 4, 13, 14, 3, 1]} +{"sent_id": [1, 2, 4, 0, 5, 6]} +{"sent_id": [0, 3, 1, 2, 5, 12]} +{"sent_id": [0, 4, 12, 3, 16, 2]} +{"sent_id": [2, 1, 4, 7, 3, 0]} +{"sent_id": [2, 7, 1, 12, 4, 13]} +{"sent_id": [0, 3, 2, 1, 9, 10]} +{"sent_id": [2, 3, 5, 9, 4, 14]} +{"sent_id": [1, 3, 2, 10, 11, 13]} +{"sent_id": [1, 4, 2, 13, 12, 3]} +{"sent_id": [2, 1, 7, 0, 3, 9]} +{"sent_id": [3, 0, 5, 8, 7, 6]} +{"sent_id": [1, 3, 10, 2, 4, 11]} +{"sent_id": [3, 4, 15, 8, 9, 6]} +{"sent_id": [3, 2, 4, 0, 5, 18]} +{"sent_id": [2, 1, 3, 4, 6, 7]} +{"sent_id": [3, 1, 0, 4, 2, 14]} +{"sent_id": [2, 14, 3, 5, 4, 0]} +{"sent_id": [1, 2, 3, 9, 0, 4]} +{"sent_id": [3, 9, 2, 0, 4, 6]} +{"sent_id": [3, 2, 4, 1, 6, 8]} +{"sent_id": [4, 1, 2, 3, 6, 8]} +{"sent_id": [2, 0, 4, 8, 7, 10]} +{"sent_id": [1, 3, 12, 2, 6, 11]} +{"sent_id": [4, 8, 5, 1, 2, 0]} +{"sent_id": [1, 4, 2, 7, 0, 6]} +{"sent_id": [3, 0, 4, 9, 14, 1]} +{"sent_id": [0, 1, 10, 3, 4, 5]} +{"sent_id": [3, 0, 5, 1, 6, 8]} +{"sent_id": [1, 0, 4, 2, 11, 12]} +{"sent_id": [2, 3, 1, 6, 11, 0]} +{"sent_id": [3, 2, 11, 10, 13, 8]} +{"sent_id": [3, 0, 4, 14, 2, 10]} +{"sent_id": [3, 1, 10, 11, 0, 5]} +{"sent_id": [1, 2, 6, 5, 3, 11]} +{"sent_id": [0, 1, 2, 5, 3, 4]} +{"sent_id": [0, 12, 3, 2, 4, 9]} +{"sent_id": [2, 5, 0, 3, 4, 11]} +{"sent_id": [3, 1, 4, 5, 2, 7]} +{"sent_id": [1, 2, 10, 7, 3, 5]} +{"sent_id": [1, 2, 11, 6, 16, 8]} +{"sent_id": [2, 0, 3, 5, 1, 4]} +{"sent_id": [3, 2, 4, 1, 7, 8]} +{"sent_id": [4, 0, 1, 3, 16, 2]} +{"sent_id": [4, 3, 7, 6, 10, 0]} +{"sent_id": [5, 1, 6, 3, 2, 7]} +{"sent_id": [3, 2, 1, 5, 8, 6]} +{"sent_id": [1, 3, 2, 6, 4, 14]} +{"sent_id": [1, 8, 3, 0, 7, 2]} +{"sent_id": [2, 1, 3, 8, 5, 0]} +{"sent_id": [3, 1, 2, 4, 5, 0]} +{"sent_id": [4, 1, 13, 2, 5, 3]} +{"sent_id": [1, 2, 3, 8, 9, 11]} +{"sent_id": [5, 9, 0, 4, 3, 2]} +{"sent_id": [4, 6, 11, 16, 19, 7]} +{"sent_id": [2, 3, 0, 4, 12, 11]} +{"sent_id": [2, 1, 4, 6, 5, 7]} +{"sent_id": [3, 2, 4, 0, 5, 7]} +{"sent_id": [4, 5, 3, 11, 6, 1]} +{"sent_id": [2, 1, 5, 8, 6, 3]} +{"sent_id": [4, 3, 1, 12, 11, 8]} +{"sent_id": [1, 2, 4, 6, 0, 3]} +{"sent_id": [1, 2, 6, 5, 12, 7]} +{"sent_id": [1, 2, 5, 3, 4, 6]} +{"sent_id": [1, 2, 18, 7, 5, 3]} +{"sent_id": [0, 6, 22, 7, 23, 4]} +{"sent_id": [2, 0, 6, 1, 10, 3]} +{"sent_id": [3, 2, 0, 1, 6, 4]} +{"sent_id": [2, 1, 0, 5, 9, 3]} +{"sent_id": [0, 6, 1, 2, 5, 3]} +{"sent_id": [1, 3, 2, 0, 9, 7]} +{"sent_id": [0, 3, 5, 14, 6, 1]} +{"sent_id": [0, 9, 1, 6, 8, 5]} +{"sent_id": [1, 0, 4, 12, 14, 15]} +{"sent_id": [1, 6, 7, 3, 2, 5]} +{"sent_id": [3, 1, 13, 2, 0, 4]} +{"sent_id": [2, 1, 8, 6, 4, 0]} +{"sent_id": [2, 3, 4, 5, 0, 6]} +{"sent_id": [1, 2, 3, 4, 5, 10]} +{"sent_id": [7, 19, 1, 0, 20, 9]} +{"sent_id": [2, 5, 4, 1, 8, 6]} +{"sent_id": [2, 3, 1, 12, 7, 4]} +{"sent_id": [1, 7, 8, 3, 4, 5]} +{"sent_id": [13, 0, 14, 1, 2, 7]} +{"sent_id": [1, 13, 6, 2, 4, 10]} +{"sent_id": [2, 1, 5, 4, 6, 3]} +{"sent_id": [5, 7, 0, 2, 6, 12]} +{"sent_id": [2, 1, 3, 5, 7, 6]} +{"sent_id": [5, 1, 3, 2, 0, 4]} +{"sent_id": [0, 3, 1, 12, 9, 7]} +{"sent_id": [0, 2, 7, 1, 6, 9]} +{"sent_id": [5, 11, 1, 2, 0, 12]} +{"sent_id": [8, 1, 9, 2, 4, 17]} +{"sent_id": [1, 2, 3, 4, 0, 15]} +{"sent_id": [7, 1, 3, 19, 0, 20]} +{"sent_id": [3, 1, 0, 4, 6, 2]} +{"sent_id": [1, 2, 4, 13, 3, 0]} +{"sent_id": [2, 7, 1, 4, 10, 9]} +{"sent_id": [4, 5, 9, 7, 2, 11]} +{"sent_id": [1, 2, 3, 5, 18, 4]} +{"sent_id": [1, 2, 0, 5, 6, 9]} +{"sent_id": [1, 2, 0, 4, 6, 7]} +{"sent_id": [3, 4, 2, 7, 6, 1]} +{"sent_id": [2, 3, 1, 4, 12, 5]} +{"sent_id": [3, 4, 10, 1, 14, 2]} +{"sent_id": [3, 1, 0, 4, 2, 11]} +{"sent_id": [1, 2, 5, 3, 6, 4]} +{"sent_id": [3, 2, 16, 1, 4, 5]} +{"sent_id": [6, 1, 2, 8, 5, 13]} +{"sent_id": [3, 0, 8, 1, 6, 5]} +{"sent_id": [1, 2, 9, 3, 8, 0]} +{"sent_id": [4, 5, 2, 3, 7, 8]} +{"sent_id": [2, 4, 3, 5, 9, 8]} +{"sent_id": [1, 2, 5, 0, 4, 10]} +{"sent_id": [16, 20, 17, 19, 12, 22]} +{"sent_id": [2, 4, 1, 5, 0, 3]} +{"sent_id": [1, 6, 2, 5, 4, 13]} +{"sent_id": [1, 2, 3, 15, 6, 0]} +{"sent_id": [1, 2, 3, 8, 4, 12]} +{"sent_id": [2, 0, 7, 1, 5, 3]} +{"sent_id": [1, 3, 2, 9, 4, 7]} +{"sent_id": [3, 2, 8, 1, 7, 6]} +{"sent_id": [0, 2, 1, 16, 10, 14]} +{"sent_id": [5, 1, 2, 3, 8, 0]} +{"sent_id": [0, 3, 7, 6, 1, 4]} +{"sent_id": [1, 13, 2, 14, 12, 15]} +{"sent_id": [8, 4, 18, 10, 1, 0]} +{"sent_id": [4, 3, 2, 0, 5, 20]} +{"sent_id": [1, 2, 8, 0, 6, 5]} +{"sent_id": [3, 0, 5, 1, 11, 10]} +{"sent_id": [0, 1, 2, 4, 16, 8]} +{"sent_id": [1, 7, 8, 2, 4, 3]} +{"sent_id": [1, 0, 19, 7, 9, 4]} +{"sent_id": [1, 0, 2, 10, 8, 9]} +{"sent_id": [3, 2, 4, 0, 14, 18]} +{"sent_id": [3, 2, 4, 1, 6, 14]} +{"sent_id": [2, 1, 6, 0, 8, 10]} +{"sent_id": [2, 5, 1, 8, 6, 7]} +{"sent_id": [3, 8, 7, 4, 1, 5]} +{"sent_id": [0, 2, 1, 3, 4, 5]} +{"sent_id": [1, 2, 9, 0, 8, 3]} +{"sent_id": [3, 11, 7, 12, 6, 1]} +{"sent_id": [14, 2, 18, 9, 3, 8]} +{"sent_id": [3, 1, 2, 10, 9, 4]} +{"sent_id": [2, 4, 6, 3, 5, 0]} +{"sent_id": [3, 0, 1, 4, 2, 8]} +{"sent_id": [2, 1, 5, 6, 8, 12]} +{"sent_id": [1, 17, 2, 20, 4, 3]} +{"sent_id": [0, 1, 5, 4, 3, 14]} +{"sent_id": [4, 0, 12, 1, 8, 15]} +{"sent_id": [2, 1, 12, 11, 7, 5]} +{"sent_id": [7, 3, 0, 8, 4, 5]} +{"sent_id": [0, 2, 5, 3, 4, 1]} +{"sent_id": [1, 2, 5, 7, 0, 6]} +{"sent_id": [3, 1, 2, 4, 5, 14]} +{"sent_id": [5, 2, 1, 3, 7, 4]} +{"sent_id": [3, 9, 5, 6, 11, 2]} +{"sent_id": [1, 2, 3, 7, 9, 8]} +{"sent_id": [4, 6, 5, 3, 16, 1]} +{"sent_id": [20, 1, 5, 3, 6, 2]} +{"sent_id": [0, 12, 9, 1, 5, 4]} +{"sent_id": [8, 3, 4, 2, 1, 0]} +{"sent_id": [6, 3, 4, 0, 5, 2]} +{"sent_id": [0, 1, 8, 2, 4, 9]} +{"sent_id": [1, 2, 7, 5, 8, 4]} +{"sent_id": [3, 4, 13, 0, 8, 11]} +{"sent_id": [3, 1, 4, 0, 2, 7]} +{"sent_id": [0, 4, 10, 1, 2, 8]} +{"sent_id": [3, 2, 4, 13, 0, 11]} +{"sent_id": [0, 15, 3, 1, 4, 2]} +{"sent_id": [1, 3, 2, 11, 16, 4]} +{"sent_id": [1, 2, 7, 6, 4, 0]} +{"sent_id": [2, 1, 4, 7, 5, 6]} +{"sent_id": [0, 11, 4, 9, 2, 6]} +{"sent_id": [1, 2, 8, 4, 9, 0]} +{"sent_id": [1, 3, 2, 11, 12, 0]} +{"sent_id": [5, 6, 7, 10, 20, 8]} +{"sent_id": [4, 1, 2, 0, 3, 12]} +{"sent_id": [2, 3, 6, 4, 8, 0]} +{"sent_id": [15, 8, 11, 0, 2, 19]} +{"sent_id": [3, 1, 2, 13, 0, 15]} +{"sent_id": [8, 0, 3, 1, 4, 5]} +{"sent_id": [4, 1, 3, 0, 7, 14]} +{"sent_id": [0, 1, 5, 4, 3, 2]} +{"sent_id": [3, 2, 1, 9, 4, 0]} +{"sent_id": [1, 2, 3, 4, 6, 0]} +{"sent_id": [7, 0, 11, 16, 3, 10]} +{"sent_id": [2, 4, 3, 0, 5, 14]} +{"sent_id": [3, 1, 0, 14, 7, 15]} +{"sent_id": [0, 3, 1, 2, 4, 11]} +{"sent_id": [3, 2, 6, 1, 4, 7]} +{"sent_id": [8, 1, 2, 0, 3, 7]} +{"sent_id": [3, 1, 5, 2, 6, 0]} +{"sent_id": [0, 4, 3, 1, 2, 7]} +{"sent_id": [1, 3, 0, 11, 2, 9]} +{"sent_id": [6, 5, 7, 0, 14, 4]} +{"sent_id": [1, 0, 2, 11, 10, 13]} +{"sent_id": [2, 1, 0, 5, 6, 7]} +{"sent_id": [7, 2, 4, 0, 1, 3]} +{"sent_id": [2, 14, 0, 1, 5, 3]} +{"sent_id": [3, 2, 1, 4, 9, 0]} +{"sent_id": [0, 2, 1, 3, 6, 7]} +{"sent_id": [11, 0, 4, 3, 2, 1]} +{"sent_id": [2, 1, 3, 5, 4, 11]} +{"sent_id": [0, 2, 3, 8, 1, 9]} +{"sent_id": [3, 12, 2, 1, 0, 7]} +{"sent_id": [5, 0, 14, 4, 1, 7]} +{"sent_id": [1, 9, 3, 2, 5, 8]} +{"sent_id": [7, 9, 3, 13, 1, 5]} +{"sent_id": [6, 14, 3, 0, 2, 1]} +{"sent_id": [1, 2, 3, 5, 0, 9]} +{"sent_id": [1, 2, 5, 4, 6, 0]} +{"sent_id": [1, 3, 13, 7, 4, 0]} +{"sent_id": [0, 10, 3, 1, 8, 15]} +{"sent_id": [2, 1, 4, 7, 6, 5]} +{"sent_id": [0, 3, 10, 6, 1, 15]} +{"sent_id": [3, 2, 11, 0, 6, 7]} +{"sent_id": [3, 5, 0, 1, 2, 14]} +{"sent_id": [1, 4, 2, 8, 13, 0]} +{"sent_id": [3, 4, 0, 1, 9, 8]} +{"sent_id": [1, 3, 2, 4, 11, 10]} +{"sent_id": [3, 2, 11, 6, 12, 8]} +{"sent_id": [4, 1, 2, 6, 3, 5]} +{"sent_id": [1, 2, 6, 5, 7, 0]} +{"sent_id": [1, 11, 12, 2, 3, 15]} +{"sent_id": [1, 2, 3, 5, 0, 10]} +{"sent_id": [4, 0, 14, 7, 5, 1]} +{"sent_id": [1, 0, 8, 2, 4, 6]} +{"sent_id": [1, 2, 0, 4, 6, 12]} +{"sent_id": [2, 1, 3, 0, 6, 12]} +{"sent_id": [2, 1, 9, 3, 7, 6]} +{"sent_id": [0, 2, 5, 1, 3, 6]} +{"sent_id": [0, 10, 1, 3, 2, 4]} +{"sent_id": [3, 4, 2, 8, 0, 9]} +{"sent_id": [1, 2, 7, 8, 3, 9]} +{"sent_id": [0, 14, 13, 2, 3, 1]} +{"sent_id": [7, 5, 0, 13, 12, 3]} +{"sent_id": [2, 4, 3, 6, 13, 8]} +{"sent_id": [12, 2, 0, 8, 10, 7]} +{"sent_id": [3, 12, 2, 13, 1, 0]} +{"sent_id": [4, 5, 3, 0, 1, 8]} +{"sent_id": [8, 3, 2, 1, 4, 9]} +{"sent_id": [1, 3, 2, 5, 12, 0]} +{"sent_id": [0, 6, 2, 1, 4, 7]} +{"sent_id": [1, 0, 13, 12, 2, 4]} +{"sent_id": [1, 3, 4, 2, 5, 8]} +{"sent_id": [0, 3, 6, 1, 4, 8]} +{"sent_id": [3, 2, 6, 7, 9, 5]} +{"sent_id": [3, 10, 1, 8, 4, 6]} +{"sent_id": [0, 2, 4, 3, 5, 7]} +{"sent_id": [1, 2, 9, 10, 5, 7]} +{"sent_id": [3, 2, 6, 4, 7, 15]} +{"sent_id": [3, 1, 6, 2, 5, 0]} +{"sent_id": [3, 0, 1, 7, 9, 17]} +{"sent_id": [0, 1, 4, 3, 2, 10]} +{"sent_id": [0, 4, 8, 1, 5, 2]} +{"sent_id": [0, 2, 1, 4, 8, 7]} +{"sent_id": [2, 1, 3, 9, 5, 4]} +{"sent_id": [12, 3, 1, 0, 6, 2]} +{"sent_id": [3, 1, 4, 11, 2, 8]} +{"sent_id": [3, 1, 12, 2, 5, 4]} +{"sent_id": [0, 1, 14, 5, 15, 8]} +{"sent_id": [3, 2, 1, 8, 5, 6]} +{"sent_id": [5, 1, 0, 6, 13, 19]} +{"sent_id": [0, 1, 3, 2, 5, 4]} +{"sent_id": [3, 2, 14, 1, 7, 4]} +{"sent_id": [2, 0, 1, 3, 7, 10]} +{"sent_id": [3, 7, 12, 8, 0, 5]} +{"sent_id": [1, 0, 2, 7, 4, 9]} +{"sent_id": [4, 1, 19, 2, 3, 16]} +{"sent_id": [1, 0, 2, 10, 21, 6]} +{"sent_id": [2, 4, 3, 6, 0, 1]} +{"sent_id": [3, 4, 7, 5, 12, 6]} +{"sent_id": [0, 1, 15, 16, 2, 8]} +{"sent_id": [4, 11, 1, 2, 6, 5]} +{"sent_id": [3, 4, 1, 2, 10, 9]} +{"sent_id": [2, 3, 4, 14, 0, 5]} +{"sent_id": [1, 3, 6, 4, 9, 2]} +{"sent_id": [3, 0, 1, 7, 8, 5]} +{"sent_id": [2, 0, 14, 3, 1, 11]} +{"sent_id": [0, 1, 2, 5, 4, 3]} +{"sent_id": [1, 3, 2, 9, 5, 6]} +{"sent_id": [9, 3, 1, 2, 6, 4]} +{"sent_id": [3, 0, 1, 4, 9, 5]} +{"sent_id": [3, 2, 1, 13, 6, 4]} +{"sent_id": [6, 1, 9, 10, 2, 4]} +{"sent_id": [1, 0, 4, 9, 10, 8]} +{"sent_id": [1, 3, 11, 8, 2, 5]} +{"sent_id": [2, 0, 4, 1, 7, 9]} +{"sent_id": [3, 1, 0, 2, 4, 6]} +{"sent_id": [1, 2, 8, 0, 13, 7]} +{"sent_id": [1, 4, 5, 3, 2, 0]} +{"sent_id": [4, 2, 1, 5, 11, 15]} +{"sent_id": [8, 2, 1, 0, 3, 4]} +{"sent_id": [2, 1, 3, 11, 9, 6]} +{"sent_id": [4, 3, 5, 7, 0, 1]} +{"sent_id": [3, 4, 2, 1, 6, 11]} +{"sent_id": [1, 2, 3, 5, 9, 10]} +{"sent_id": [2, 1, 6, 8, 0, 5]} +{"sent_id": [4, 3, 0, 1, 11, 2]} +{"sent_id": [1, 0, 6, 5, 11, 4]} +{"sent_id": [3, 4, 2, 6, 1, 8]} +{"sent_id": [1, 2, 5, 4, 0, 7]} +{"sent_id": [1, 2, 11, 12, 3, 0]} +{"sent_id": [4, 5, 17, 13, 6, 16]} +{"sent_id": [2, 3, 1, 0, 10, 5]} +{"sent_id": [0, 2, 4, 3, 1, 15]} +{"sent_id": [0, 3, 4, 1, 6, 11]} +{"sent_id": [1, 0, 3, 4, 8, 9]} +{"sent_id": [3, 4, 5, 2, 1, 17]} +{"sent_id": [10, 0, 3, 1, 12, 14]} +{"sent_id": [5, 8, 7, 3, 16, 6]} +{"sent_id": [2, 3, 0, 1, 16, 15]} +{"sent_id": [5, 9, 2, 8, 7, 20]} +{"sent_id": [5, 8, 4, 1, 3, 0]} +{"sent_id": [3, 1, 4, 5, 12, 9]} +{"sent_id": [3, 1, 2, 8, 5, 9]} +{"sent_id": [1, 5, 2, 4, 11, 8]} +{"sent_id": [0, 2, 1, 6, 3, 15]} +{"sent_id": [3, 1, 2, 12, 0, 14]} +{"sent_id": [6, 7, 0, 1, 5, 8]} +{"sent_id": [1, 0, 3, 2, 6, 7]} +{"sent_id": [0, 3, 2, 4, 9, 10]} +{"sent_id": [1, 8, 2, 9, 22, 24]} +{"sent_id": [1, 2, 4, 6, 11, 8]} +{"sent_id": [10, 9, 1, 3, 0, 2]} +{"sent_id": [0, 9, 1, 2, 3, 13]} +{"sent_id": [2, 3, 5, 1, 8, 14]} +{"sent_id": [0, 3, 10, 4, 1, 13]} +{"sent_id": [0, 2, 3, 9, 4, 5]} +{"sent_id": [3, 1, 9, 10, 11, 6]} +{"sent_id": [3, 2, 1, 4, 5, 12]} +{"sent_id": [1, 16, 0, 5, 7, 3]} +{"sent_id": [3, 1, 12, 0, 13, 5]} +{"sent_id": [1, 2, 7, 0, 6, 4]} +{"sent_id": [1, 2, 6, 14, 11, 15]} +{"sent_id": [4, 3, 0, 1, 11, 2]} +{"sent_id": [1, 5, 4, 6, 2, 16]} +{"sent_id": [3, 1, 2, 0, 6, 9]} +{"sent_id": [3, 0, 1, 2, 7, 4]} +{"sent_id": [1, 3, 2, 6, 4, 5]} +{"sent_id": [0, 4, 8, 1, 5, 9]} +{"sent_id": [0, 1, 2, 5, 7, 3]} +{"sent_id": [3, 1, 10, 0, 6, 2]} +{"sent_id": [4, 5, 9, 3, 18, 11]} +{"sent_id": [0, 18, 9, 7, 11, 5]} +{"sent_id": [3, 0, 4, 2, 6, 1]} +{"sent_id": [3, 2, 4, 5, 8, 11]} +{"sent_id": [7, 5, 8, 0, 19, 1]} +{"sent_id": [3, 1, 2, 4, 0, 17]} +{"sent_id": [1, 0, 2, 7, 4, 6]} +{"sent_id": [1, 8, 3, 0, 5, 7]} +{"sent_id": [1, 3, 2, 5, 7, 8]} +{"sent_id": [1, 4, 2, 5, 7, 0]} +{"sent_id": [4, 2, 7, 6, 11, 3]} +{"sent_id": [5, 1, 0, 4, 2, 13]} +{"sent_id": [1, 2, 6, 3, 5, 0]} +{"sent_id": [2, 0, 1, 12, 4, 6]} +{"sent_id": [5, 1, 0, 8, 2, 7]} +{"sent_id": [5, 9, 10, 2, 1, 0]} +{"sent_id": [1, 0, 2, 4, 3, 16]} +{"sent_id": [1, 3, 11, 2, 0, 12]} +{"sent_id": [0, 14, 1, 6, 3, 5]} +{"sent_id": [2, 1, 6, 3, 4, 0]} +{"sent_id": [5, 1, 0, 12, 8, 6]} +{"sent_id": [1, 2, 0, 7, 6, 8]} +{"sent_id": [0, 9, 10, 4, 2, 3]} +{"sent_id": [1, 8, 2, 5, 7, 0]} +{"sent_id": [3, 4, 2, 10, 1, 13]} +{"sent_id": [2, 3, 1, 7, 11, 0]} +{"sent_id": [1, 6, 4, 2, 5, 7]} +{"sent_id": [2, 6, 1, 5, 4, 3]} +{"sent_id": [15, 16, 0, 2, 3, 1]} +{"sent_id": [4, 12, 11, 0, 1, 3]} +{"sent_id": [5, 3, 4, 12, 6, 0]} +{"sent_id": [3, 4, 1, 7, 10, 5]} +{"sent_id": [0, 1, 2, 5, 4, 6]} +{"sent_id": [1, 0, 12, 4, 8, 13]} +{"sent_id": [2, 0, 1, 5, 3, 4]} +{"sent_id": [0, 16, 9, 10, 14, 17]} +{"sent_id": [3, 4, 2, 1, 9, 0]} +{"sent_id": [2, 1, 3, 0, 4, 7]} +{"sent_id": [3, 0, 10, 2, 1, 14]} +{"sent_id": [1, 5, 6, 2, 15, 0]} +{"sent_id": [1, 8, 9, 3, 0, 6]} +{"sent_id": [1, 0, 2, 6, 3, 5]} +{"sent_id": [2, 3, 12, 1, 13, 4]} +{"sent_id": [1, 3, 0, 7, 12, 11]} +{"sent_id": [0, 7, 2, 11, 1, 10]} +{"sent_id": [3, 1, 4, 2, 6, 9]} +{"sent_id": [4, 2, 0, 6, 1, 3]} +{"sent_id": [3, 1, 12, 10, 4, 2]} +{"sent_id": [4, 10, 5, 1, 9, 0]} +{"sent_id": [4, 0, 1, 5, 16, 15]} +{"sent_id": [3, 1, 0, 2, 4, 12]} +{"sent_id": [1, 10, 2, 4, 11, 8]} +{"sent_id": [4, 0, 3, 2, 1, 5]} +{"sent_id": [4, 2, 3, 1, 7, 6]} +{"sent_id": [1, 8, 2, 0, 7, 6]} +{"sent_id": [3, 0, 9, 2, 1, 10]} +{"sent_id": [3, 5, 11, 1, 0, 2]} +{"sent_id": [1, 3, 6, 9, 2, 15]} +{"sent_id": [3, 4, 1, 6, 10, 2]} +{"sent_id": [1, 11, 7, 0, 3, 2]} +{"sent_id": [6, 1, 0, 5, 4, 2]} +{"sent_id": [3, 0, 4, 1, 2, 5]} +{"sent_id": [2, 0, 5, 9, 4, 17]} +{"sent_id": [9, 1, 0, 10, 2, 3]} +{"sent_id": [1, 0, 2, 10, 3, 18]} +{"sent_id": [3, 2, 9, 5, 8, 4]} +{"sent_id": [4, 3, 2, 5, 9, 13]} +{"sent_id": [1, 3, 11, 2, 0, 4]} +{"sent_id": [2, 1, 3, 15, 8, 5]} +{"sent_id": [0, 3, 4, 5, 2, 7]} +{"sent_id": [9, 1, 13, 14, 2, 3]} +{"sent_id": [0, 12, 2, 11, 3, 1]} +{"sent_id": [2, 11, 7, 4, 5, 16]} +{"sent_id": [0, 4, 10, 3, 13, 1]} +{"sent_id": [1, 0, 6, 9, 4, 5]} +{"sent_id": [1, 4, 0, 2, 5, 3]} +{"sent_id": [4, 6, 2, 5, 7, 1]} +{"sent_id": [3, 2, 1, 7, 4, 11]} +{"sent_id": [1, 7, 0, 5, 6, 2]} +{"sent_id": [1, 3, 2, 7, 14, 0]} +{"sent_id": [5, 16, 0, 17, 14, 2]} +{"sent_id": [1, 0, 2, 6, 10, 3]} +{"sent_id": [2, 7, 3, 1, 4, 15]} +{"sent_id": [0, 1, 2, 3, 8, 9]} +{"sent_id": [1, 2, 4, 3, 16, 0]} +{"sent_id": [0, 2, 8, 1, 12, 15]} +{"sent_id": [4, 3, 15, 1, 16, 12]} +{"sent_id": [0, 5, 11, 1, 6, 2]} +{"sent_id": [2, 3, 1, 0, 4, 5]} +{"sent_id": [1, 2, 19, 15, 3, 4]} +{"sent_id": [0, 3, 4, 7, 1, 11]} +{"sent_id": [2, 3, 7, 6, 8, 13]} +{"sent_id": [1, 4, 5, 0, 10, 6]} +{"sent_id": [4, 3, 8, 5, 1, 0]} +{"sent_id": [4, 2, 9, 3, 7, 8]} +{"sent_id": [1, 2, 12, 4, 5, 6]} +{"sent_id": [1, 4, 3, 6, 0, 9]} +{"sent_id": [2, 0, 3, 4, 1, 8]} +{"sent_id": [1, 9, 7, 2, 15, 0]} +{"sent_id": [1, 4, 2, 3, 6, 8]} +{"sent_id": [7, 8, 15, 10, 12, 9]} +{"sent_id": [2, 0, 1, 4, 3, 6]} +{"sent_id": [5, 1, 4, 11, 6, 10]} +{"sent_id": [3, 0, 10, 1, 2, 5]} +{"sent_id": [3, 1, 7, 13, 2, 4]} +{"sent_id": [2, 3, 0, 6, 5, 1]} +{"sent_id": [2, 1, 3, 5, 7, 8]} +{"sent_id": [2, 3, 1, 0, 4, 7]} +{"sent_id": [3, 6, 8, 7, 9, 2]} +{"sent_id": [4, 0, 3, 1, 13, 2]} +{"sent_id": [1, 2, 3, 6, 11, 5]} +{"sent_id": [3, 5, 0, 2, 4, 8]} +{"sent_id": [2, 4, 5, 3, 0, 1]} +{"sent_id": [8, 3, 13, 2, 7, 10]} +{"sent_id": [1, 3, 2, 0, 10, 13]} +{"sent_id": [3, 6, 2, 4, 11, 5]} +{"sent_id": [3, 4, 13, 0, 11, 2]} +{"sent_id": [0, 3, 4, 11, 2, 7]} +{"sent_id": [3, 2, 13, 0, 1, 7]} +{"sent_id": [3, 0, 14, 1, 5, 4]} +{"sent_id": [1, 5, 2, 0, 4, 3]} diff --git a/fastSum/MatchSum/train_matching.py b/fastSum/MatchSum/train_matching.py new file mode 100644 index 0000000..be85fb6 --- /dev/null +++ b/fastSum/MatchSum/train_matching.py @@ -0,0 +1,153 @@ +import sys +import argparse +import os +import json +import torch +from time import time +from datetime import timedelta +from os.path import join, exists +from torch.optim import Adam + +from utils import read_jsonl, get_data_path, get_result_path + +from dataloader import MatchSumPipe +from model import MatchSum +from metrics import MarginRankingLoss, ValidMetric, MatchRougeMetric +from callback import MyCallback +from fastNLP.core.trainer import Trainer +from fastNLP.core.tester import Tester +from fastNLP.core.callback import SaveModelCallback + +def configure_training(args): + devices = [int(gpu) for gpu in args.gpus.split(',')] + params = {} + params['encoder'] = args.encoder + params['candidate_num'] = args.candidate_num + params['batch_size'] = args.batch_size + params['accum_count'] = args.accum_count + params['max_lr'] = args.max_lr + params['margin'] = args.margin + params['warmup_steps'] = args.warmup_steps + params['n_epochs'] = args.n_epochs + params['valid_steps'] = args.valid_steps + return devices, params + +def train_model(args): + + # check if the data_path and save_path exists + data_paths = get_data_path(args.mode, args.encoder) + for name in data_paths: + assert exists(data_paths[name]) + if not exists(args.save_path): + os.makedirs(args.save_path) + + # load summarization datasets + datasets = MatchSumPipe(args.candidate_num, args.encoder).process_from_file(data_paths) + print('Information of dataset is:') + print(datasets) + train_set = datasets.datasets['train'] + valid_set = datasets.datasets['val'] + + # configure training + devices, train_params = configure_training(args) + with open(join(args.save_path, 'params.json'), 'w') as f: + json.dump(train_params, f, indent=4) + print('Devices is:') + print(devices) + + # configure model + model = MatchSum(args.candidate_num, args.encoder) + optimizer = Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0) + + callbacks = [MyCallback(args), + SaveModelCallback(save_dir=args.save_path, top=5)] + + criterion = MarginRankingLoss(args.margin) + val_metric = [ValidMetric(save_path=args.save_path, data=read_jsonl(data_paths['val']))] + + assert args.batch_size % len(devices) == 0 + + trainer = Trainer(train_data=train_set, model=model, optimizer=optimizer, + loss=criterion, batch_size=args.batch_size, + update_every=args.accum_count, n_epochs=args.n_epochs, + print_every=10, dev_data=valid_set, metrics=val_metric, + metric_key='ROUGE', validate_every=args.valid_steps, + save_path=args.save_path, device=devices, callbacks=callbacks) + + print('Start training with the following hyper-parameters:') + print(train_params) + trainer.train() + + +def test_model(args): + + models = os.listdir(args.save_path) + + # load dataset + data_paths = get_data_path(args.mode, args.encoder) + datasets = MatchSumPipe(args.candidate_num, args.encoder).process_from_file(data_paths) + print('Information of dataset is:') + print(datasets) + test_set = datasets.datasets['test'] + + # need 1 gpu for testing + device = int(args.gpus) + + args.batch_size = 1 + + for cur_model in models: + + print('Current model is {}'.format(cur_model)) + + # load model + model = torch.load(join(args.save_path, cur_model)) + + # configure testing + dec_path, ref_path = get_result_path(args.save_path, cur_model) + test_metric = MatchRougeMetric(data=read_jsonl(data_paths['test']), dec_path=dec_path, + ref_path=ref_path, n_total = len(test_set)) + tester = Tester(data=test_set, model=model, metrics=[test_metric], + batch_size=args.batch_size, device=device, use_tqdm=False) + tester.test() + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='training/testing of MatchSum' + ) + parser.add_argument('--mode', required=True, + help='training or testing of MatchSum', type=str) + + parser.add_argument('--save_path', required=True, + help='root of the model', type=str) + # example for gpus input: '0,1,2,3' + parser.add_argument('--gpus', required=True, + help='available gpus for training(separated by commas)', type=str) + parser.add_argument('--encoder', required=True, + help='the encoder for matchsum (bert/roberta)', type=str) + + parser.add_argument('--batch_size', default=16, + help='the training batch size', type=int) + parser.add_argument('--accum_count', default=2, + help='number of updates steps to accumulate before performing a backward/update pass', type=int) + parser.add_argument('--candidate_num', default=20, + help='number of candidates summaries', type=int) + parser.add_argument('--max_lr', default=2e-5, + help='max learning rate for warm up', type=float) + parser.add_argument('--margin', default=0.01, + help='parameter for MarginRankingLoss', type=float) + parser.add_argument('--warmup_steps', default=10000, + help='warm up steps for training', type=int) + parser.add_argument('--n_epochs', default=5, + help='total number of training epochs', type=int) + parser.add_argument('--valid_steps', default=1000, + help='number of update steps for validation and saving checkpoint', type=int) + + args = parser.parse_known_args()[0] + + if args.mode == 'train': + print('Training process of MatchSum !!!') + train_model(args) + else: + print('Testing process of MatchSum !!!') + test_model(args) + diff --git a/fastSum/MatchSum/utils.py b/fastSum/MatchSum/utils.py new file mode 100644 index 0000000..ba3d6b8 --- /dev/null +++ b/fastSum/MatchSum/utils.py @@ -0,0 +1,32 @@ +import os +from os.path import exists, join +import json + +def read_jsonl(path): + data = [] + with open(path) as f: + for line in f: + data.append(json.loads(line)) + return data + +def get_data_path(mode, encoder): + paths = {} + if mode == 'train': + paths['train'] = 'data/train_CNNDM_' + encoder + '.jsonl' + paths['val'] = 'data/val_CNNDM_' + encoder + '.jsonl' + else: + paths['test'] = 'data/test_CNNDM_' + encoder + '.jsonl' + return paths + +def get_result_path(save_path, cur_model): + result_path = join(save_path, '../result') + if not exists(result_path): + os.makedirs(result_path) + model_path = join(result_path, cur_model) + if not exists(model_path): + os.makedirs(model_path) + dec_path = join(model_path, 'dec') + ref_path = join(model_path, 'ref') + os.makedirs(dec_path) + os.makedirs(ref_path) + return dec_path, ref_path diff --git a/fastSum/PointerGen/README.md b/fastSum/PointerGen/README.md new file mode 100644 index 0000000..fcac06c --- /dev/null +++ b/fastSum/PointerGen/README.md @@ -0,0 +1,4 @@ +# pointer-gen-fastnlp + +fastNLP实现的Get To The Point Summarization with Pointer-Generator Networks论文模型 +论文地址: https://arxiv.org/abs/1704.04368 diff --git a/fastSum/PointerGen/data_util/__pycache__/config.cpython-37.pyc b/fastSum/PointerGen/data_util/__pycache__/config.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..250f0a3af9114598bc0abd33c0ffce2d0c90cefd GIT binary patch literal 1617 zcmbu9yN}#N7{JH&K78KWy=NXAcS(S1i#-=eNJt4AaR*m%LIMfN5*p346x8#IUfHIbU`@Ltz^XP{twS@ozPDUbfK)?m>jDYvRjT~@3A;Z=j{p2tfvAwaG{54jG@$PMTt zH(`Lh1S`nPu!_6_Ysjmxj(iO^kXx{ceBE*zE}^^wmyy?Owd>Y?1FoRu4IsGdtB13V zQ1ZOcd^9a`9-hj0%Ej!%ml(r+rkUbeg?opG`yYjqRHSOkflktlD=PTi#<8m88v9F8>P^PMFdnD@T%N{DcV|sw&T!OlM4|g$QFIM!?eS zG)Mevli^7bv!mI&|EW-ZIx2-8Vf8R8lIGjYO;^qDV>8WfAkuG)3Pv@ZHh;_5K7L9_ z^0pmM$H@g8PHskiE=hC0!WbOCS*N?uxbL%|% zY&?9kZmX)~Qo0yg`;_9TX-Xqs7KNse%6i3~7X>_BS~5MY2l!dC3;HVXxBz~^;uflI z+1S=`k%~I7-=)d+akJDEuY;zrjSF(DklBbRn5F<+;N*GK<@u2j>fng!cuG||<553n zUs5h&sx&WEqv9IQ)ukiO@rGE9xy&1AjGfF+Vavu75^(Yj;;XeH7~W6N0* zZD?8HT%wS9V^kWNIc=`7N4*laskx*H7j-XHG%ilKWC@RYDABA?ir&?chs&*fL3vrk zQx$b9#c5JjbuW|uWDK3UrFb^M-z7@pjA1JMk^J@9%bNWEHkv)eN@L^3_A=WoPo=q8 z+xV)R2;vN!j%yz$aC~Ro={Ow^-xrVZF0@86MC)v&xgmEKO*Cwqh7v62l-2>Ic*a#` z!g>p9SaPi-HHytLmrLsGP~D2kGp zd(XLZf1EjU?svXBZ%P+t{S#4_qv#EMu&{i;|K zS5dzvUJ>i$)SETx-~RzZlN?kxp!xK7u842_jiZ(C-)!R`S8K+(1LLH-fl-F^YEiu z$Mp`bXca}QBucEFYO)qG%*;^#E*#4(~zXhQ#56UG;6YA1>?4>b9mL`^hdeXXTVP=u@to8(v( z&MD$FRuirhd!!}KnVJ@k-%1Kk^^tL=Y%9Cpf2^g&bS{~DYKnp=ex`^yQTjqt6>ceW ziK6t3aR$_|EsuJ6=Bj&%*(^67;TA=xaxkmO?d2DG^jOWgTJ*bkUM!xfpQ=e=R8304JcA`)YRAU8#b2ts|H(F&_mtVcSo+#d zE62Z1%6O{3P3Mz&F}J3qRn!{lg?J&UCJUHnkt|KDQ{%CnE~ZOqExnR1rz`1dQW3Q^ zWwewmvgH+Vg|(%zw#-^>tgWziWvs2TwmjC>SX&uuS6N#n?MwCWd+=dxbVa<96jv1S z>I$M2zCla83@@++=WVd%QX4F~)CRjQwZXbeZLl$KW1GvP6;aD= zA^#_&Ux5xwrus5;STWUCpu>WxPTs`oQ+*9OR-Wotp<~stzA9>jU1F6G>kJ5rHP?V* zYeG8%zQS+TLnSF-Pp>yK^LZ#mlr6TOM6qml;uc|zhy5J^qm0-)jx#&ooV39$-r!MY zqHix~041=eGF^Dj#=f8bJv*9OuXw58V~xOgwD*~3g_Mk09FWAfMqu?M2pW~U`;<;s#@OilOjIsd_ zsC!a|a${qoVP`g8Q_J^)tUy997#zh}L3k6Q)*%pcRJCqHK9OsD+p8 z1){~P$aOOIbt>vqY*2BHiZ`hE4vOKm>-4+m@_ILvb@G4Y#r2`deb`lvtCF0WnFHAi zV&n~Eyv!N*L@f1UuOA_a3W@Y5B=G}+QTy;xb8TR=tW0g#Y z^Rf!3w$}E}J9oF=YyL@ArVMwk+Q<+T z9{E1p*$p#`T@qy$Y=eg+WsuC^TROIjTfq8x9OV=7J8+9MXYTyQT4wY^;brr@Vc782 zpdIgnrg+b0)Cz5zb3H5OubjG0WQv!}Lh|eO_P~1JXmTW|gGs$2mpw|cpXmqQiR(N6@SJV=ulD4X9Gk-@bqOYS}(<IV6CBla|dcUKUYt?|C*xB^BWGKG!^Efx5*#QzFBS5xI}v`xLS1cfjPlt+nvgW`oU z0(}5=F<8`P4Wx2B=Tj5j_;F&v1CZGt<9n(7xzbgMI(_CO);1Dd>Ii*g zB{UC`7d!Xv0f;r8t%=f)p#x` zzEG0tsSdJXgKEraR=I8u%Sz~}|SJ4OQ3Hh++*&jIZ}!LajJ@@?@Zk>n$!5(9^jUnFLt zAK3DCqT`r>JD_kn4rA2EPPCDRodXh^*g4@nT&1?eqJD>~pu|R^gY*KO zB|2l2-ppCWBrY0e9uoAt3|q*^6#g6%4M%=J?ez9Q#zf>A%pNSz6?mLOFjIT3jn-Ch z)W47#c;E;qpETw~%M>o;befllO7^8u^5UrhkG!-Z=h8 z_Q9`HzCFe<>yMEJyI^Wz^7&&xrfEE zPmShq5^}?Y+1Fcj;zoXbAVYD~@kG5{r#)YPZ@V7vx8r&*3jPpf0L`njJNb*qX8pl_ zFRDlT;gK)uK^WKfnV(V5Ct#m`FYxN$4Z`{urLF^|JlT#z+293-IrqD?`ef}ld-do0 zz0Q8U6H4htgD?hgkG#C~hv?LBT)QXu)5c7EQJUwd8t*sHou7at?Yqk{md%GpG0p?n zus0Y+Z&17uwa?>C1EN*6Dt4ZRtIF)_M`)7|(PNsLh)ET3aoi;kgqo^^WXHkDyWkA; z8A3hNfNCTIUxWrk(!iY%VKE{GyAH93U58zT7Cv|<2Js2nc@LGtA|lR2!~u~~6R~O} zU{M0{FHMTA!{Q@c6kU8iWZe1&PXbaUX*+`Z?=&CmG~d~2@gX29P4%7T_6!mGC?E4@ zs9e2sBwdq^xkwy&D#9l$Isgsi$LMfjyPhYT8$4!*JW0pi9L|ZDTx{Upqj0sLd9a^o{n^CKUgm(wSUg8m2Rv=90uZ$Py4pWMc=()!{ zX9Iihc?%)PN6FvEaT>-{0ko)BIGZiy#$ogwEI`MGflS?qPfEj1h9E55(CNiF;XtM4B(H1tI2`TIC=aj z=)Ml+N^SyiVMexu`j`tD1*D?OZp~}`w~e= ztKg7U<*N!AzHQ-d<636Z*V^U>_awc2cX_OB_QFj<+g5%Gl@#dsbdh((O-a$u2Y)`( zyXC--4>l(svH81+YwY>q6W0W97@WuwO<*Awjykcsf-e$LD7$|6d=oJ2ZH_@!5;Mpa z_ykK|g*WNTH%KHO&E?N&NtcQS70hU+OqV|h^HEXWrn^M+n00WnW#r@S%OS-ynl>VK6R}!u-OoTP2F7`f>#s8BNVs3?F4k69aUP6a}Z-z z<~hjapw}mAq6-eOI_dQVX@J2yuzkcqDUw@B9GQ0gvJiRJZD24Xf-;cG1UcxtO5@xG}+XDLK&^qzR^bjI8Xh5E4q8Rv$=4cB75^ zc}gYlQbRH;Iiw3YnSn?(QEw`p5~T&J5(#!CB6O^q_3I}whY5Qok$Jw=c( literal 0 HcmV?d00001 diff --git a/fastSum/PointerGen/data_util/__pycache__/utils.cpython-37.pyc b/fastSum/PointerGen/data_util/__pycache__/utils.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a2bf6ea9ffa02a479a652cd45fc5ef594103a8b GIT binary patch literal 4925 zcmd5=&2JmW72jFzlFM&WqQ0CqVLp_YDI_HZ(zJ%_M6nq=ttC5>9LG%D^_sJyC@**E z*`;kUOB9H6ZIj+}kbo9NFFExu=%If>Pjf3;pa@W)hZa5P)Zd$>XjwLj9Lv@I=Iia- z+4tuC-i+QW7IPYYzy00WTaCJ={goO=zbq>6;tu}=;2LM1)=Em&VydmTbXBHW2G@D& z3$11H?{Sl-zhJF2&u|Mp8J^`il$Mgrwz5xX%C&N;op0q;S!fkhS!|V1=Dl*S(yFlJ zt<_f5t?p0p!U021k(YRxS9q0A@o8MOudUWJpW(B3SB-z4&+`S$VunA@Px0qao8@d% zYrOC+zC~Mar>MY>O1dxL4$lB0eCH$RN2$l!BVE-}F&o#6SRdDv6xX2BT$kFgu)4AJ z!G$Z$v-SF7IGovNzTezvu3u=@H?Oa)t!~^rtGX{W*P9!wTg{8dyBkcJebM!!MoMNJ z5p~<1D=p_v7zw8x!4Pgc;4Zg=LDU~azt=<>^E~`$MYz2na+h|3p1ZOq+B>el5;@`B zaAn&GBj4*U3Dme9Gvoyf5VQP*1`2$%bNvZ$tF z3pX5iQAn#pfyOMBQHM`4ctar zrg~jp>e05$Y%2TgNmC8Ul*75q1MI|bdyR}VNM);X@+Gn~7O@|QZsZDSgpu2qrh0eF zqK8OH%fbX~-|4x^c?pok9C=}Q~NqMxcLQquxsw8544NgBX)p`X*UpMA8H%g z$6A!(u>73HGjkZF=!3sn3M0@& z%x1M;>-P+(U_)~;Ji8dG&xcp^xNM~==IOPOd3gjS{v4rr8%C( zIWK_i!t=|Ig@?1`1uTMkB2$loI`4}5FkRt$1X!~z-1}8EJZ=_<<`h}cqL~0207{0yPxVK6M+Huy{*BS1_cB+=d>stryr5C z(sLTQ5fYhM=tbzACMj-F@4eGEo^)__;@DggO2f*=)$5mD2>sPkO$6^5!6vO~S z{cQb^)xRZkh*Q+DaAar@j8{*{;>gD0c@iUQi8{fH1g{Xh1du84T4LCY%qQGtD~IGs z*O+*u*$xJNB(vLHL@W)9SJlIJ-91qyT||Njs5qKZ9<-0C2+8u}ATpFUrVv7>;FWnM z-oO~~?nW@^xZMgw583HM){yKo$wr6llS6jvkiFEfhUStd?ku4YN#V7VR#JFj(xO7Y zeS4_C_Sz&UC^(26Rcul)N7_E(GRc&&c923y80*7^dO@u8$4jIhb%mrHb;8@X;}e=E z;Z_=Jjy2-Y17b(Ejzw#3G}l(I$yCRUq}dU{ppOq`Cu2=o=RBu(hdbw+(DN_c+HejD z$ng+BGO~go<_TeD zOFtS;KNddyDgQx3$=4G3Pga*&x0YZ2;Nr_FlT{HK9oK%-?hCiw4Y5O#rK2wNIG!iV zN9}DpYzGK|@iS+he&!4a?D#Wh>=Vy;Pd`JXcl;Ue=$XcXw6H~Uqizpj=LZj@1@hdc z<_VIOY4;&gW(aHT&{j^SMK2OA_K`j3u8SNP%9MvhS6U527hBB0Zwe6zX$r^hxGGK) zo>ml{hLvGjnd$GTFPGK^+33x;-jcb*8_1JFW_x6RRh=7m6J66bhbSA{Az#iWGEeo_ zkW%ksCbr{q#o7aWrz|CVTssO>B5qV=c4x02+O!>zIYA2`shimRI(?aeO}5B5g=;re z`m#5!Ufq)U&6}HB%{BYl>egkMTf2I(c_pc{uFM~ssmwi|9ZW&$r9m%Dk_{6wolHpP z#}lLN0c=c*Alb$oOF`AKwURYrW8qvTD%=2Qtbz`DeSimL)CSRQQz@W2xy%!>ogj9+=^L$sQ=$F>%X61*1tWAS;3codvV0*oK9KQxirOw1*f|uw<)}y(ifP$u3IPlmpQ0W_w?9jdnpIDt#BP0%6O zA?On967&dYliSKFCfeHTyOQmSyVUOy_yhq#pWq(BiEZ%QQygUXaE|Z(072gfp*i(Eep#I_ea5M_+0 z|0SpstvV;EZMk@d2FNXR?!xzw6Q$`7did{z?&EN+a*}wHx>I0tSq)v}y7oX&^7gvD zZX|w8I%xN)cv8^xj+sgsEkn;+=a2ygo_n6Q)8Xp?I%nfbSyrxOWvs%ut$GVENKUs{ KDP and are used in the data files to segment the abstracts into sentences. They don't receive vocab ids. +SENTENCE_START = '' +SENTENCE_END = '' + +PAD_TOKEN = '[PAD]' # This has a vocab id, which is used to pad the encoder input, decoder input and target sequence +UNKNOWN_TOKEN = '[UNK]' # This has a vocab id, which is used to represent out-of-vocabulary words +START_DECODING = '[START]' # This has a vocab id, which is used at the start of every decoder input sequence +STOP_DECODING = '[STOP]' # This has a vocab id, which is used at the end of untruncated target sequences + +# Note: none of , , [PAD], [UNK], [START], [STOP] should appear in the vocab file. + +''' +class Cnn_dailymailLodaer(DataSetLoader): + def __init__(self): + super(Cnn_dailymailLodaer, self).__init__() + + def _load(self, data_path): + def text_generator(example_generator): + _count_1 = 0 + _count_2 = 0 + while True: + try: + e = example_generator.__next__() # e is a tf.Example + except StopIteration: + break + try: + article_text = e.features.feature['article'].bytes_list.value[ + 0] # the article text was saved under the key 'article' in the data files + abstract_text = e.features.feature['abstract'].bytes_list.value[ + 0] # the abstract text was saved under the key 'abstract' in the data files + except ValueError: + logger.error('Failed to get article or abstract from example') + continue + if len(article_text) == 0: # See https://github.com/abisee/pointer-generator/issues/1 + _count_1 += 1 + logger.warning('Found an example with empty article text. Skipping it. Skipping number: %d'%_count_1) + continue + else: + #_count_2 += 1 + #logger.info("getting example: %d"%_count_2) + yield (article_text, abstract_text) + + def example_generator(data_path): + filelist = glob.glob(data_path) # get the list of datafiles + assert filelist, ('Error: Empty filelist at %s' % data_path) # check filelist isn't empty + filelist = sorted(filelist) + + for f in filelist: + reader = open(f, 'rb') + while True: + len_bytes = reader.read(8) + if not len_bytes: break # finished reading this file + str_len = struct.unpack('q', len_bytes)[0] + example_str = struct.unpack('%ds' % str_len, reader.read(str_len))[0] + yield example_pb2.Example.FromString(example_str) + + logger.info("example_generator completed reading all datafiles. No more data.") + + + input_gen = text_generator(example_generator(data_path)) + data_dict = {"article": [], "abstract_sentences": []} + + while True: + try: + (article, + abstract) = input_gen.__next__() # read the next example from file. article and abstract are both strings. + if isinstance(abstract, bytes): + abstract = str(abstract, encoding="utf-8") + if isinstance(article, bytes): + article = str(article, encoding="utf-8") + + except StopIteration: # if there are no more examples: + logger.info("The example generator for this example queue filling thread has exhausted data.") + break + + abstract_sentences = [sent.strip() for sent in abstract2sents( + abstract)] # Use the and tags in abstract to get a list of sentences. + + data_dict["article"].append(article) + data_dict["abstract_sentences"].append(abstract_sentences) + + dataset = DataSet(data_dict) + + return dataset + + def process(self, paths, vocab_path, vocab_size): + def read_vocab(vocab_file, max_size): + word_list = [] + count = 0 + + for w in [UNKNOWN_TOKEN, PAD_TOKEN, START_DECODING, STOP_DECODING]: + word_list.append(w) + count += 1 + + with open(vocab_file, 'r') as vocab_f: + for line in vocab_f: + pieces = line.split() + if len(pieces) != 2: + logger.warning('Warning: incorrectly formatted line in vocabulary file: %s\n' % line) + continue + w = pieces[0] + if w in [SENTENCE_START, SENTENCE_END, UNKNOWN_TOKEN, PAD_TOKEN, START_DECODING, STOP_DECODING]: + raise Exception( + ', , [UNK], [PAD], [START] and [STOP] shouldn\'t be in the vocab file, but %s is' % w) + if w in word_list: + raise Exception('Duplicated word in vocabulary file: %s' % w) + word_list.append(w) + count += 1 + if max_size != 0 and count >= max_size: + logger.info("max_size of vocab was specified as %i; we now have %i words. Stopping reading." % ( + max_size, count)) + break + + logger.info( + "Finished constructing vocabulary of %i total words. Last word added: %s" % (count, word_list[-1])) + return word_list + + vocab = Vocabulary(padding=PAD_TOKEN, unknown=UNKNOWN_TOKEN) + vocab.update(read_vocab(vocab_path, vocab_size)) + datasets = {} + for key, value in paths.items(): + + logger.info("-"*5+"processing dataset " + key+"-"*5) + datasets[key] = self._load(value) + datasets[key].apply(lambda x: ' '.join(x["abstract_sentences"]), new_field_name='abstract') + logger.info("dataset " + key + " size is %d" % len(datasets[key])) + logger.info("-"*5+"process dataset "+key+" done!"+"-"*5) + + return DataBundle(vocabs={"train": vocab}, datasets=datasets) +''' + + +def convert_list_to_ndarray(field): + if isinstance(field, list): + return np.array(field) + return field + + +def prepare_dataInfo(mode, vocab_size, config, train_data_path=None, dev_data_path=None, test_data_path=None): + def sent_to_words(sents): + result = [] + for sent in sents: + result.extend([word.strip() for word in sent.split(" ") if len(word.strip()) != 0]) + return result + + # dataloader = Cnn_dailymailLodaer() + # 适用于输入是json的文件,每个json必须有field :text和summary,二者都是tokenized + dataloader = JsonLoader(fields={"text": "words", "summary": "abstract_sentences"}) + if mode == 'train': + if train_data_path is None or dev_data_path is None: + print("training with no train data path or dev data path! ") + paths = {"train": train_data_path, "dev": dev_data_path} + else: + if test_data_path is None: + print("testing with no test data path ! ") + paths = {"train": train_data_path, "test": test_data_path} + # dataInfo = dataloader.process(paths, vocab_path, vocab_size) + print("=" * 10) + print(paths) + dataInfo = dataloader.load(paths) + for key, _dataset in dataInfo.datasets.items(): + _dataset.apply(lambda ins: " ".join(ins['words']), new_field_name='article') + _dataset.apply(lambda ins: sent_to_words(ins['words']), new_field_name='words') + _dataset.apply(lambda ins: sent_tokenize(" ".join(ins['abstract_sentences'])), + new_field_name='abstract_sentences') + + vocab = Vocabulary(max_size=vocab_size - 2, padding=PAD_TOKEN, unknown=UNKNOWN_TOKEN) + vocab.from_dataset(dataInfo.datasets['train'], field_name='words') + vocab.add(START_DECODING) + vocab.add(STOP_DECODING) + print(vocab.to_word(0)) + print(len(vocab)) + assert vocab_size == len(vocab), "vocab_size error!!!" + dataInfo.set_vocab(vocab, "train") + + for key, dataset in dataInfo.datasets.items(): + data_dict = {"enc_len": [], + "enc_input": [], + "dec_input": [], + "target": [], + "dec_len": [], + "article_oovs": [], + "enc_input_extend_vocab": []} + + for instance in dataset: + article = instance["article"] + abstract_sentences = instance["abstract_sentences"] + + enc_len, enc_input, dec_input, target, dec_len, article_oovs, enc_input_extend_vocab = getting_full_info( + article, abstract_sentences, dataInfo.vocabs['train'], config) + + data_dict["enc_len"].append(enc_len) + data_dict["enc_input"].append(enc_input) + data_dict["dec_input"].append(dec_input) + data_dict["target"].append(target) + data_dict["dec_len"].append(dec_len) + data_dict["article_oovs"].append(article_oovs) + data_dict["enc_input_extend_vocab"].append(enc_input_extend_vocab) + + logger.info("-----prepare_dataInfo for dataset " + key + "-----") + logger.info(str(len(data_dict["enc_len"])) + " " + str(len(data_dict["enc_input"])) + " " + str( + len(data_dict["dec_input"])) + " " + + str(len(data_dict["target"])) + " " + str(len(data_dict["dec_len"])) + " " + str( + len(data_dict["article_oovs"])) + " " + + str(len(data_dict["enc_input_extend_vocab"]))) + dataset.add_field("enc_len", data_dict["enc_len"]) + dataset.add_field("enc_input", data_dict["enc_input"]) + dataset.add_field("dec_input", data_dict["dec_input"]) + dataset.add_field("target", data_dict["target"]) + dataset.add_field("dec_len", data_dict["dec_len"]) + dataset.add_field("article_oovs", data_dict["article_oovs"]) + dataset.add_field("enc_input_extend_vocab", data_dict["enc_input_extend_vocab"]) + + dataset.set_input("enc_len", "enc_input", "dec_input", "dec_len", "article_oovs", "enc_input_extend_vocab") + dataset.set_target("target", "article_oovs", "abstract_sentences") + ''' + for name, dataset in dataInfo.datasets.items(): + for field_name in dataset.get_field_names(): + dataset.apply_field(convert_list_to_ndarray, field_name=field_name, new_field_name=field_name) + ''' + return dataInfo + + +def get_dec_inp_targ_seqs(sequence, max_len, start_id, stop_id): + inp = [start_id] + sequence[:] + target = sequence[:] + if len(inp) > max_len: # truncate + inp = inp[:max_len] + target = target[:max_len] # no end_token + else: # no truncation + target.append(stop_id) # end token + assert len(inp) == len(target) + return inp, target + + +def getting_full_info(article, abstract_sentences, vocab, config): + # Get ids of special tokens + start_decoding = vocab.to_index(START_DECODING) + stop_decoding = vocab.to_index(STOP_DECODING) + + # Process the article + article_words = article.split() + if len(article_words) > config.max_enc_steps: + article_words = article_words[:config.max_enc_steps] + enc_len = len(article_words) # store the length after truncation but before padding + enc_input = [vocab.to_index(w) for w in + article_words] # list of word ids; OOVs are represented by the id for UNK token + + # Process the abstract + abstract = ' '.join(abstract_sentences) # string + abstract_words = abstract.split() # list of strings + abs_ids = [vocab.to_index(w) for w in + abstract_words] # list of word ids; OOVs are represented by the id for UNK token + + # Get the decoder input sequence and target sequence + dec_input, target = get_dec_inp_targ_seqs(abs_ids, config.max_dec_steps, start_decoding, stop_decoding) + dec_len = len(dec_input) + + # If using pointer-generator mode, we need to store some extra info + if config.pointer_gen: + # Store a version of the enc_input where in-article OOVs are represented by their temporary OOV id; also store the in-article OOVs words themselves + enc_input_extend_vocab, article_oovs = article2ids(article_words, vocab) + + # Get a verison of the reference summary where in-article OOVs are represented by their temporary article OOV id + abs_ids_extend_vocab = abstract2ids(abstract_words, vocab, article_oovs) + + # Overwrite decoder target sequence so it uses the temp article OOV ids + _, target = get_dec_inp_targ_seqs(abs_ids_extend_vocab, config.max_dec_steps, start_decoding, stop_decoding) + else: + article_oovs = ["N O N E"] + enc_input_extend_vocab = [-1] + + return enc_len, enc_input, dec_input, target, dec_len, article_oovs, enc_input_extend_vocab + + +def article2ids(article_words, vocab): + ids = [] + oovs = [] + unk_id = vocab.to_index(UNKNOWN_TOKEN) + for w in article_words: + i = vocab.to_index(w) + if i == unk_id: # If w is OOV + if w not in oovs: # Add to list of OOVs + oovs.append(w) + oov_num = oovs.index(w) # This is 0 for the first article OOV, 1 for the second article OOV... + ids.append(len(vocab) + oov_num) # This is e.g. 50000 for the first article OOV, 50001 for the second... + else: + ids.append(i) + if len(oovs) == 0: + oovs.append("N O N E") + return ids, oovs + + +def abstract2ids(abstract_words, vocab, article_oovs): + ids = [] + unk_id = vocab.to_index(UNKNOWN_TOKEN) + for w in abstract_words: + i = vocab.to_index(w) + if i == unk_id: # If w is an OOV word + if w in article_oovs: # If w is an in-article OOV + vocab_idx = len(vocab) + article_oovs.index(w) # Map to its temporary article OOV number + ids.append(vocab_idx) + else: # If w is an out-of-article OOV + ids.append(unk_id) # Map to the UNK token id + else: + ids.append(i) + return ids + + +def outputids2words(id_list, vocab, article_oovs): + words = [] + for i in id_list: + try: + w = vocab.to_word(i) # might be [UNK] + except KeyError as e: # w is OOV + # assert article_oovs is not None, "Error: model produced a word ID that isn't in the vocabulary. This should not happen in baseline (no pointer-generator) mode" + assert "N O N E" not in article_oovs, "Error: model produced a word ID that isn't in the vocabulary. This should not happen in baseline (no pointer-generator) mode" + article_oov_idx = i - len(vocab) + try: + w = article_oovs[article_oov_idx] + except ValueError as e: # i doesn't correspond to an article oov + raise ValueError( + 'Error: model produced word ID %i which corresponds to article OOV %i but this example only has %i article OOVs' % ( + i, article_oov_idx, len(article_oovs))) + words.append(w) + return words + + +def abstract2sents(abstract): + cur = 0 + sents = [] + while True: + try: + start_p = abstract.index(SENTENCE_START, cur) + end_p = abstract.index(SENTENCE_END, start_p + 1) + cur = end_p + len(SENTENCE_END) + sents.append(abstract[start_p + len(SENTENCE_START):end_p]) + except ValueError as e: # no more sentences + return sents + + +def show_art_oovs(article, vocab): + unk_token = vocab.to_index(UNKNOWN_TOKEN) + words = article.split(' ') + words = [("__%s__" % w) if vocab.to_index(w) == unk_token else w for w in words] + out_str = ' '.join(words) + return out_str + + +def show_abs_oovs(abstract, vocab, article_oovs): + unk_token = vocab.to_index(UNKNOWN_TOKEN) + words = abstract.split(' ') + new_words = [] + for w in words: + # w is oov + if vocab.to_index(w) == unk_token: + # if article_oovs is None: # baseline mode + if "N O N E" in article_oovs: + new_words.append("__%s__" % w) + else: # pointer-generator mode + if w in article_oovs: + new_words.append("__%s__" % w) + else: + new_words.append("!!__%s__!!" % w) + else: # w is in-vocab word + new_words.append(w) + + out_str = ' '.join(new_words) + return out_str diff --git a/fastSum/PointerGen/data_util/logging.py b/fastSum/PointerGen/data_util/logging.py new file mode 100644 index 0000000..ae76c50 --- /dev/null +++ b/fastSum/PointerGen/data_util/logging.py @@ -0,0 +1,14 @@ +import logging +import logging.handlers + +logger = logging.getLogger("ptr_gen_logger") + +handler1 = logging.StreamHandler() + +logger.setLevel(logging.DEBUG) +handler1.setLevel(logging.DEBUG) + +formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s") +handler1.setFormatter(formatter) + +logger.addHandler(handler1) diff --git a/fastSum/PointerGen/data_util/utils.py b/fastSum/PointerGen/data_util/utils.py new file mode 100644 index 0000000..2aa61fa --- /dev/null +++ b/fastSum/PointerGen/data_util/utils.py @@ -0,0 +1,206 @@ +# !/usr/bin/python +# -*- coding: utf-8 -*- +# Content of this file is copied from https://github.com/abisee/pointer-generator/blob/master/ +import os +import pyrouge +import logging +import tensorflow as tf + + +def print_results(article, abstract, decoded_output): + print("") + print('ARTICLE: %s', article) + print('REFERENCE SUMMARY: %s', abstract) + print('GENERATED SUMMARY: %s', decoded_output) + print("") + + +def calc_running_avg_loss(loss, running_avg_loss, summary_writer, step, decay=0.99): + if running_avg_loss == 0: # on the first iteration just take the loss + running_avg_loss = loss + else: + running_avg_loss = running_avg_loss * decay + (1 - decay) * loss + running_avg_loss = min(running_avg_loss, 12) # clip + loss_sum = tf.Summary() + tag_name = 'running_avg_loss/decay=%f' % (decay) + loss_sum.value.add(tag=tag_name, simple_value=running_avg_loss) + # print("writing to summary step: ", step) + summary_writer.add_summary(loss_sum, step) + return running_avg_loss + + +def print_config(conf, path): + path = os.path.join(path, "config.txt") + with open(path, "w") as f: + f.write('\n'.join(['%s:%s' % item for item in conf.__dict__.items()])) + print("writing config to dir " + path + " done!") + + +def write_eval_results(decode_path, eval_result): + count = 0 + file_path = os.path.join(decode_path, "ROUGE-RESULT.txt") + with open(file_path, "w") as f: + for key, value in eval_result.items(): + count += 1 + f.write(key + ": " + str(value) + " ") + if count % 3 == 0: + f.write("\n") + print("writing eval result done!") + + +import re +import os +import shutil +import copy +import datetime +import numpy as np +from rouge import Rouge + +import sys + +sys.setrecursionlimit(10000) + +REMAP = {"-lrb-": "(", "-rrb-": ")", "-lcb-": "{", "-rcb-": "}", + "-lsb-": "[", "-rsb-": "]", "``": '"', "''": '"'} + + +def clean(x): + return re.sub(r"-lrb-|-rrb-|-lcb-|-rcb-|-lsb-|-rsb-|``|''", lambda m: REMAP.get(m.group()), x) + + +def pyrouge_score_all(hyps_list, refer_list, config, remap=True): + nowTime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + PYROUGE_ROOT = os.path.join('/remote-home/yrchen/', nowTime) + SYSTEM_PATH = os.path.join(PYROUGE_ROOT, 'gold') + MODEL_PATH = os.path.join(PYROUGE_ROOT, 'system') + if os.path.exists(SYSTEM_PATH): + shutil.rmtree(SYSTEM_PATH) + os.makedirs(SYSTEM_PATH) + if os.path.exists(MODEL_PATH): + shutil.rmtree(MODEL_PATH) + os.makedirs(MODEL_PATH) + + assert len(hyps_list) == len(refer_list) + gold_path = os.path.join(config.decode_path, "gold.txt") + pred_path = os.path.join(config.decode_path, "pred.txt") + + for i in range(len(hyps_list)): + system_file = os.path.join(SYSTEM_PATH, 'Reference.%d.txt' % i) + model_file = os.path.join(MODEL_PATH, 'Model.A.%d.txt' % i) + + refer = clean(refer_list[i]) if remap else refer_list[i] + hyps = clean(hyps_list[i]) if remap else hyps_list[i] + + with open(system_file, 'wb') as f: + f.write(refer.encode('utf-8')) + with open(model_file, 'wb') as f: + f.write(hyps.encode('utf-8')) + + with open(gold_path, 'a') as f: + f.write(refer.replace("\n", " ")) + f.write("\n") + with open(pred_path, 'a') as f: + f.write(hyps.replace("\n", " ")) + f.write("\n") + + # r = Rouge155('/remote-home/dqwang/ROUGE/RELEASE-1.5.5') + # r = pyrouge.Rouge155() + r = pyrouge.Rouge155('/remote-home/yrchen/ROUGE/ROUGE/RELEASE-1.5.5') + + r.system_dir = SYSTEM_PATH + r.model_dir = MODEL_PATH + r.system_filename_pattern = 'Reference.(\d+).txt' + r.model_filename_pattern = 'Model.[A-Z].#ID#.txt' + + output = r.convert_and_evaluate(rouge_args="-e /remote-home/yrchen/ROUGE/ROUGE/RELEASE-1.5.5/data -a -m -n 2 -d") + # output = r.convert_and_evaluate() + output_dict = r.output_to_dict(output) + + shutil.rmtree(PYROUGE_ROOT) + + scores = {} + scores['rouge_1_precision'], scores['rouge_1_recall'], scores['rouge_1_f_score'] = output_dict['rouge_1_precision'], \ + output_dict['rouge_1_recall'], \ + output_dict[ + 'rouge_1_f_score'] + scores['rouge_2_precision'], scores['rouge_2_recall'], scores['rouge_2_f_score'] = output_dict['rouge_2_precision'], \ + output_dict['rouge_2_recall'], \ + output_dict[ + 'rouge_2_f_score'] + scores['rouge_l_precision'], scores['rouge_l_recall'], scores['rouge_l_f_score'] = output_dict['rouge_l_precision'], \ + output_dict['rouge_l_recall'], \ + output_dict[ + 'rouge_l_f_score'] + return scores + + +def pyrouge_score_all_multi(hyps_list, refer_list, config, remap=True): + nowTime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + PYROUGE_ROOT = os.path.join('/remote-home/yrchen/', nowTime) + SYSTEM_PATH = os.path.join(PYROUGE_ROOT, 'system') + MODEL_PATH = os.path.join(PYROUGE_ROOT, 'gold') + if os.path.exists(SYSTEM_PATH): + shutil.rmtree(SYSTEM_PATH) + os.makedirs(SYSTEM_PATH) + if os.path.exists(MODEL_PATH): + shutil.rmtree(MODEL_PATH) + os.makedirs(MODEL_PATH) + + assert len(hyps_list) == len(refer_list) + + pred_path = os.path.join(config.decode_path, "pred.txt") + + for i in range(len(hyps_list)): + system_file = os.path.join(SYSTEM_PATH, 'Model.%d.txt' % i) + # model_file = os.path.join(MODEL_PATH, 'Reference.A.%d.txt' % i) + + hyps = clean(hyps_list[i]) if remap else hyps_list[i] + + with open(system_file, 'wb') as f: + f.write(hyps.encode('utf-8')) + + referType = ["A", "B", "C", "D", "E", "F", "G"] + + for j in range(len(refer_list[i])): + model_file = os.path.join(MODEL_PATH, "Reference.%s.%d.txt" % (referType[j], i)) + refer = clean(refer_list[i][j]) if remap else refer_list[i][j] + with open(model_file, 'wb') as f: + f.write(refer.encode('utf-8')) + + gold_path = os.path.join(config.decode_path, "gold.%s.txt" % (referType[j])) + with open(gold_path, 'a') as f: + f.write(refer) + f.write("\n") + + with open(pred_path, 'a') as f: + f.write(hyps) + f.write("\n") + + # r = Rouge155('/remote-home/dqwang/ROUGE/RELEASE-1.5.5') + r = pyrouge.Rouge155() + + r.system_dir = SYSTEM_PATH + r.model_dir = MODEL_PATH + r.system_filename_pattern = 'Model.(\d+).txt' + r.model_filename_pattern = 'Reference.[A-Z].#ID#.txt' + + # output = r.convert_and_evaluate(rouge_args="-e /remote-home/dqwang/ROUGE/RELEASE-1.5.5/data -a -m -n 2 -d") + output = r.convert_and_evaluate() + output_dict = r.output_to_dict(output) + + shutil.rmtree(PYROUGE_ROOT) + + scores = {} + scores["rouge_1_precision"], scores['rouge_1_recall'], scores['rouge_1_f_score'] = output_dict['rouge_1_precision'], \ + output_dict['rouge_1_recall'], \ + output_dict[ + 'rouge_1_f_score'] + scores['rouge_2_precision'], scores['rouge_2_recall'], scores['rouge_2_f_score'] = output_dict['rouge_2_precision'], \ + output_dict['rouge_2_recall'], \ + output_dict[ + 'rouge_2_f_score'] + scores['rouge_l_precision'], scores['rouge_l_recall'], scores['rouge_l_f_score'] = output_dict['rouge_l_precision'], \ + output_dict['rouge_l_recall'], \ + output_dict[ + 'rouge_l_f_score'] + return scores diff --git a/fastSum/PointerGen/decode.py b/fastSum/PointerGen/decode.py new file mode 100644 index 0000000..2066064 --- /dev/null +++ b/fastSum/PointerGen/decode.py @@ -0,0 +1,184 @@ +from data_util.config import Config +from data_util.data import prepare_dataInfo, PAD_TOKEN +from data_util.logging import logger +from model.loss import MyLoss +from model.model import Model +from fastNLP import SequentialSampler +from fastNLP import Trainer +from fastNLP import Tester +from torch.optim import Adagrad +from model.metric import PyRougeMetric, FastRougeMetric +import os +import time +from data_util.utils import print_config, write_eval_results +from training_ptr_gen.callback import TrainCallback +import torch +import sys +import tensorflow as tf +import argparse + + +def initial_dir(mode, config, model_file_path=None): + if not os.path.exists(config.log_root): + os.mkdir(config.log_root) + + if mode == 'train': + _train_name = "" + if config.pointer_gen: + _train_name = _train_name + "_pointer_gen" + if config.is_coverage: + _train_name = _train_name + "_coverage" + + train_dir = os.path.join(config.log_root, 'train{}'.format(_train_name)) + if not os.path.exists(train_dir): + os.mkdir(train_dir) + + model_dir = os.path.join(train_dir, 'model') + if not os.path.exists(model_dir): + os.mkdir(model_dir) + + return train_dir, model_dir + else: + if model_file_path is None: + logger.error("error!, no model to load") + raise Exception("empty model file path!", model_file_path) + parent_path = os.path.dirname(model_file_path) + train_path = os.path.dirname(parent_path) + model_name = os.path.basename(model_file_path) + decode_path = os.path.join(train_path, 'decode_{}_{}'.format(config.test_data_name, model_name)) + # decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) + + if not os.path.exists(decode_path): + os.mkdir(decode_path) + else: + if os.path.exists(decode_path+"/"+"gold.txt"): + os.remove(decode_path+"/"+"gold.txt") + if os.path.exists(decode_path+"/"+"pred.txt"): + os.remove(decode_path+"/"+"pred.txt") + + return decode_path + + +def set_up_data(mode, config): + datainfo = prepare_dataInfo(mode=mode, test_data_path=config.decode_data_path, + train_data_path=config.train_data_path, vocab_size=config.vocab_size, + config=config) + logger.info('-' * 10 + "set up data done!" + '-' * 10) + return datainfo + + +def run_test(model_file_path, config): + decode_path = initial_dir('test', config, model_file_path) + config.decode_path = decode_path + if os.path.exists(os.path.join(config.decode_path, 'result.jsonl')): + os.remove(os.path.join(config.decode_path, 'result.jsonl')) + + datainfo = set_up_data('test', config) + + model = Model(vocab=datainfo.vocabs["train"], config=config) + if model_file_path is not None: + # state = torch.load(model_file_path, map_location=lambda storage, location: storage) + + state = torch.load(model_file_path, map_location=lambda storage, location: storage).state_dict() + model.load_state_dict(state) + + ''' + model.encoder.load_state_dict(state['encoder_state_dict']) + model.decoder.load_state_dict(state['decoder_state_dict'], strict=False) + model.reduce_state.load_state_dict(state['reduce_state_dict']) + ''' + + tester = Tester(model=model, data=datainfo.datasets['test'], metrics=PyRougeMetric(pred='prediction', + art_oovs='article_oovs', + abstract_sentences='abstract_sentences', + config=config, + vocab=datainfo.vocabs["train"]), + batch_size=config.batch_size) + eval_results = tester.test() + write_eval_results(decode_path, eval_results) + + +def getting_k_model_path(path, top_k): + _list = [name for name in os.listdir(path) if name.startswith("model_")] + assert len(_list) >= top_k, "error: too little models to choose lowest k loss models!!" + tmp = {} + for f in _list: + tmp_loss = float(f.split("_")[-1]) + tmp[f] = tmp_loss + k_result = sorted(tmp.items(), key=lambda item: item[1])[:top_k] + print("test models: ", k_result) + return [os.path.join(path, _item[0]) for _item in k_result] + + +# python decode.py -decode_data_path CNNDM/finished_files_new1/CNNDM.test.json -train_data_path CNNDM/finished_files_new1/CNNDM.train.json -test_model ../log/CNNDM/train_1576560623/model/model_223000_1576669601 -log_root CNNDM -is_pointer_gen -is_coverage -test_data_name cnndm -visible_gpu 5 +# python decode.py -decode_data_path CNNDM/finished_files_new1/CNNDM.test.json -train_data_path CNNDM/finished_files_new1/CNNDM.train.json -m ../log/CNNDM/train_pointer_gen_coverage/model/ -log_root CNNDM -is_pointer_gen -is_coverage -test_data_name cnndm -visible_gpu 5 -top_k 5 +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Train script") + parser.add_argument("-top_k", default=1, help="choose the k lowest loss model to test", type=int) + parser.add_argument("-m", dest="model_file_path", required=False, default=None, + help="Model file for retraining (default: None).") + + parser.add_argument('-visible_gpu', default=-1, type=int, required=True) + parser.add_argument('-dataset_path', default="/remote-home/yrchen/Datasets") + parser.add_argument('-train_data_path', + default="CNNDM/finished_files_new1/CNNDM.train.json", required=True) + # parser.add_argument('-eval_data_path', + # default="CNNDM/finished_files_new1/CNNDM.val.json", required=True) + parser.add_argument('-decode_data_path', + default="CNNDM/finished_files_new1/CNNDM.test.json", required=True) + # parser.add_argument('-vocab_path', default='CNNDM/finished_files_new1/vocab.pkl') + parser.add_argument('-root', + default='/remote-home/yrchen/tasks/fastnlp-relevant/summarization/my-pnt-sum/log') + parser.add_argument('-log_root', default='CNNDM', required=True) + + parser.add_argument('-hidden_dim', default=256, type=int) + parser.add_argument('-emb_dim', default=128, type=int) + # parser.add_argument('-batch_size', default=8, type=int) + parser.add_argument('-batch_size', default=32, type=int) + parser.add_argument('-max_enc_steps', default=400, type=int) + parser.add_argument('-max_dec_steps', default=100, type=int) + parser.add_argument('-beam_size', default=4, type=int) + parser.add_argument('-min_dec_steps', default=35, type=int) + parser.add_argument('-vocab_size', default=50000, type=int) + + parser.add_argument('-lr', default=0.15, type=float) + parser.add_argument('-adagrad_init_acc', default=0.1, type=float) + parser.add_argument('-rand_unif_init_mag', default=0.02, type=float) + parser.add_argument('-trunc_norm_init_std', default=1e-4, type=float) + parser.add_argument('-max_grad_norm', default=2.0, type=float) + + parser.add_argument('-is_pointer_gen', dest='pointer_gen', nargs='?', const=True, default=False, + type=bool) + parser.add_argument('-is_coverage', nargs='?', const=True, default=False, type=bool) + parser.add_argument('-cov_loss_wt', default=1.0, type=float) + + parser.add_argument('-eps', default=1e-12, type=float) + # parser.add_argument('-max_iterations', default=500000, required=True, type=int) + parser.add_argument("-n_epochs", default=33, type=int) + + parser.add_argument('-lr_coverage', default=0.15, type=float) + parser.add_argument('-test_data_name', required=True, type=str) + parser.add_argument('-test_model', default='', type=str) + args = parser.parse_args() + + args.train_data_path = os.path.join(args.dataset_path, args.train_data_path) + # args.eval_data_path = os.path.join(args.dataset_path, args.eval_data_path) + args.decode_data_path = os.path.join(args.dataset_path, args.decode_data_path) + # args.vocab_path = os.path.join(args.dataset_path, args.vocab_path) + + args.log_root = os.path.join(args.root, args.log_root) + + if args.visible_gpu != -1: + args.use_gpu = True + torch.cuda.set_device(args.visible_gpu) + print("using gpu: ", args.visible_gpu) + else: + args.use_gpu = False + + logger.info("------start mode test-------") + if args.test_model == '': + k_model_path_list = getting_k_model_path(args.model_file_path, args.top_k) + for tmp_path in k_model_path_list: + run_test(tmp_path, args) + else: + run_test(args.test_model, args) diff --git a/fastSum/PointerGen/model/__pycache__/loss.cpython-37.pyc b/fastSum/PointerGen/model/__pycache__/loss.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bce1479230cfc56fb0812b7f007af36e70b1e91d GIT binary patch literal 1806 zcma)7&5j&35VpH}db)f5_GdN;BydWQ25EOB4u}InC?L3m6$qqAEk!M-?VasS|E=v= zc2}O$2IT}#z+vXdJ+Ht^_{u2{zy%JW$}ZGU(Eo{JH`2lQpyR0HhMu$C=Yn& zd7Sz@7>!#1;}sd=Qs7O>Q8RD?*7O zXP)tlZvxXXq3N24)1SLwj}6IulK=*W0(LloeZ1pI*M^$Onb3Ar7D{JuIaX#IR6B5n zytxpP&4i6zmuX$wUd1jmF7m7twcSCbWt(mq6}98i9oLdbAGw(e|vl%Pveq*QmQfj-b3} zWD!BU$s#s%k(l_5%KL^cy%kwdlejjye5rknxrom?H{K0}!e1_WCIM=ZpFGn$@!rAN zph4S*tYJHV{9!xP;j(M`97wW+Jg(@0y8kf zl?N-l#je4zq1hdi+c+=$&(3==x;I99v>ch86{Y0-P2E@-IWu7}>BUOSC;(n#`J#XRU0W zsx*G%Fx_+Nc9z>@GmM-`6S&c4=XB_H%h<)tStOEuUB393xEi(*P}YrNF{>j0LIWsZ zl!!*&EpG=~(C*MZu#M>uE#VNfzLx}V3VrKmk{oY7iL_XUE=1DStP()lB+KA6oR_Hg zv+R7%%Jqojll%x4*};ZxxhTsm+=4{%Z!0Ux(? uA0O)DN8cXhjTA@t;6h&TkK&$Lx9F|7ycL{J*C+i9>(af?7>K?Xb^ihGTGuiF literal 0 HcmV?d00001 diff --git a/fastSum/PointerGen/model/__pycache__/metric.cpython-37.pyc b/fastSum/PointerGen/model/__pycache__/metric.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..914b402f3df1c5bebcdf556e38a7a3743a2e6358 GIT binary patch literal 3976 zcmd5<&2Jn@6|d^A>1of59mm8@2rw(bYDbFg6=(w(6NSXP%SyYGD2@p9Vzt^+WxMVE z7+2L8d(;C+W3(4mS`Y_>gk&H2Z#dTxPWvz9wC`2h(YuZlgWwo$o z+HUG+^{}1=VPN`RI+ZoThH2N*X4VQ@(DqsVn1s_G5*DzjW5TAmJGR3a=r>ps`b|Cq z{aes)v1#Z}oBk}DStp%aU&6^qhiacC2Z>CI9NO-SVzAAj5q!dxNP16Vi9IhZwzs+H zSo&7~NZ^!6_6otHI8F8Z*H}?DNL2#sri+2<4^+bB_kU9eCV}O!Sj9bxdqeTg>Qi{j zH6RHY(ZiLJoRCwpMmCmyZH=svefZtdKI1F^#~Hb$Thh{Ebe@#XJXt0C?N?;K^@@}f zKF#XBri-wbn<$>ij;8~2T4|2k5Io~Kt3E*6d;Cbd2XQ*!+LMD#?E3IFoPQ883uk)0 zz6@&$#TR#qj4vOF-VV=~RV?@9@>VQWp7s|7Px(Qdt7SRJvREX;Sb;{Dv!lg+t`>p0 zoE40x%b8K@5~!>RlG{+FaU$x_S$Gzx;rD<)DehTIz6%XbLdr;JvHE9Zi!zJZ$Mw)= z4s*c~9B_jg^N(rhenuP;dZ3FbJ!NcK*|Xb2jbp(#O17cOhd>k=lM{MMC;{D)$SNJ6 zc1d;})O2Yx`Z>7lHUX|{sKDDBPeqdFiswBpJ2maf zL7xllM^Ta|DvChwMK9jeUa!cvl5IU*@%yoevnY%EIzX{W4>hTM!MC{JJr3q{Bu}@* zH{j3$;*N-UB;Q1G4+t2(9!0%0mNJTr0mW?`yNhE`WdjJIf#p$;&Hx?GUDD9f`RRHX z!dP&69jfushv2yiylhNI&KLCXZAD9GOxMU4bYo%UGO)-ojF#?Q@LrhXDXa8AhenUP zu2=(2!dMP=8{4DW(fzV^;;GuMe@aJwSz~tT|G~OTMzvQYUvP-3?*-zw6l?-ksf}vC zf|b9-{cB^2me~#Vi1_pV+%_525A%x8oIN<1aE@9io4Fu40BQHnr2Vs!R?Qs+l|-|1 zz`S{4cAqM1rRg!dI!#$WnPRn*Mmcp#PXWaC{|b>tcALQUfm^S*z-gUvZ2ZczxpS`w zv%yp9!{Z=mpOqD3<@SYvSK6O$#;UjTpxxcLK1=aK_20&;m^-?8ir{J>@|B6q3HDfE zQ?&6qR5=F(y?UcDqLqFBWbHfa6##%o*-5Sd{;Z{UwUw~Ss}LKEYrPIu(?qIXk@X)v zMrkP8Bg1zt`xU@LI*1itT1~<0Q~3xQ=Zm@m0a4SXFY*1Fwlxhp)7nmXu3Zu5fW1Bp z822`guBZA1oQR8P8>b{Ww)cf7gl=X@9x>jF zq~d+4y|~{8Ak@w-h!WpI`QHZ8X^8J&`)YXUz*r}e$&hQhtAh&JBY<|@1epMCEHW4$ zHnt?hy(;=JcoeT+Zu6_UqF|bGKzBOyjQlH+LvS@?O z&=w7VT9$(pdic!1GY7No)UJl~xww}-Gz=DeqpD3zqZ1e`qg`{7j%73en&%SW+L(D_ zYaMKJ6;&|40}G9<2_4?KZ0n0D9k+|6Ltg>_0`lc?#sT?)D1v-2NU`0BqWwXfRwD+b z#1BER_%RUOJVUY`Pt$WW!?Sd#XyYVMlu4MdV}w-uKP-VfS&(cZy@ zg=m|EC~*a(L*7%Iz4a22Dn8im)CJ~t?IihDAu#D(#J6@iqJcoGg~pky%aOTwbezgG zKf=|nz?+`H{C6z~jBoaVFVU!k-lO*+939A~bB21*^Xc&3bu--<7oJ$b9e#pj6$vJ4 zvxE34wkGj+#pfTvPzqI|p~2^Eft)wu@y+K){|Em5d;BT&_X6lf zFTlAMGZ^HwV;3lK=kfJM5qwastJ^T63zn_E8l*r%?u|$OoMrtFeoTKJ5}(2ozhYZf zXoYsqYMQs*cbblE(r({zEZgdP&5YzYy=*_%%=P`IFW+u2-!C)^lJPqOmYK1Q5>TSNyE^fZm@X|~&RPCKK(}@SILF)EfhpE>| zqJG0^X2VXL#BsCOi31b{J$!!KQVVGMN3YyaQGb|3PwWi)(T%(4A{yLCTJdgtW2+S> zgWlc~D(XeITZ80Ae9-S>{zt8(GaTIL-+f|lkUW9R8~tGz^$fhecQ>tKoDQ%t!1w{j zUg5fY0Lw1eb=$MmBGR+vvm}d0mj6v84!^FguJwZT#?OrG!>?%@sh=1*+8NuSePXLm zC62bVbL@;{%9kgmV#EV7npW&T8NXDO5!`6WGBsSM@cJ5l**w|>K_a`TSL_k(rjBO zDy@;80%ilLoh0bDwo@ zXb{S-8&KtVCFzsxgFDG(r9<36I?o*UEnHS@TW$mCnSXHXiGNGw}@9PrE>NI}8_Tr}q}wmAn-HXtcm z=3#G6CvXwf%mh}E`aTmd8;l8%f_@0~ro%subQ{m?$Ibi{p7;|0k=3+AtLcPx=s*s; zp&NR5dlA?s%)VtE+s!P}xzLw%F3f{93aR&*sMT)^qR|Q8T&yhW3KAMpEdc8R+S&zl zvq~pa=Z%bXr z0O|(8lLSu@kS@<}i60mu3Z6w_ESlEI+UD=5%mrMZ);O~g^5<+N2{#DRdE36o6oiwc zT&yPpqR9XoAnwffom9hBq{(@CBdbUpl;c=>>Q7hx$1ElbT!5`#;8I9Gmc3>l6=e~o z6t-E zSAsXPmciRG2phw@$Mz)-Pm+chIOxmvrEV`8eB?x0x3_~Se!lR5iJUIogmlDyQzQmK zS_lHDs)HWWr6AZpX!T5qBFQUqN9u#z_9B(sRX@T!(#R=92zOI(%I^IsBt)`eR)Dr5y z1Y+92yRirkJ^*6Xr|~8DPMyIZ&A-^c6@_7Eux&(r;r6iIx)q3i%SHWLupjzq9*IdM z3QctlAoafR>dh~vg`E!UvjMBAb(Rs&Y4!^u_*3__U}r+jP!;(gX!lxi90YR#Ei-uq zZQ>GuWml-_oHb~@qv~WE=F(ugnWTaYp6Btz-viLr7_tqgoQ=>sOusHh9bD~-y!guJX~UP+f{Y2@qjmNP1#jelaHesP?q>`n^ZV%3sY?I>T z$@XDF5&9XJAkNXkl)NTwp#c6g8mi|Aew09jQixPqo=|Q(g26YTUJ@bD|1xWeL?UDT z89br~Fj!Got&N=7k9g+q|3w-VUx~tlcJwNY)aZ;vqPk&+G1=$CB~oaMJOMpIj^q+h zbT?<@jWOEKl;@>9&+>`EWr(SuUc>-ui$GBF5>sC!prNElAgQlpmcfpgcC*j+jQb6u z=JK08(FrpK0JaF0F09?7`l;p4IiIA;A6=Ch=O5xjlRN2%IAbW&&^dvVa$=1kW5o=H z90hm5K>;UQV>lWoloH_bkEorU)b_#0tew*ta4S+eXWm=z{~8&?o98*NkmeIO4DsGD zj?|YiLG=}aIil>BQV$;8f!b#N4nUee7{u^yqob(d8_gdu+ulj-cGKGd|1_%;F>A0K z20Kl!{bBj-bDW__zQ=eb;?=h=+f_c!(b8!||M5JaBJ?uv{S4)kG>$k3NfMOr3$gsb zl%M}}0^5qp>vA#tAWyPkR+8Z;Z)*ndcJ=uueCqDOu1>oj-z7S71C#WV+0 zG;L83KEO^>^PW|wMZ*+B7Lb&U_N0eDwTso9O@u?B3)^Wij40t~Q+HGQ_D6EZ&!XEI zcVz7qT9&mLO6I(gMLquNcxJqT5E5-Y;f7=Tb(e0oXf#LkWM1c~y-w`0M`s&a&K+l< znF_iv&V~-YsjXaHxCm{Pp_IIm0KjWV=VS?UzV&}yQ;rkZR)FGydo ziAD=axm(c-#O;0f9Cd3{)zvP)J?L6zw5Y3k@sc&F>6)3>sFoDQRgF*rS}*A(_JnyX zhFRh0CDh|Q*>{ced)HR5{AYOxGUyuSmC>lFGono=7L=$-AfD>;CajX&ZWQg&d=brA zQ#X;X)(B|nsUAQID}N7Bfb$H!#|rxdM$;y(!H$ag-DRs>JlskU2vVQqmwT(<7g^b; z8$FtfgCy8#CF)JKAh)DdC_ssLLBk`^5bufumD;zOZW8ROhft@P0|^DtgH*7R2+ZW7 zuvtPJgGE%4akDa|L&HlpuC2UV@W&UHBT}9Zb?&*i^`_viKNf zNLolQoj=JyQddR`l#V0#kg!;2fh;2BOK(}dXj&o{ga9dA8y6T>rJRH%v^1*gy7(vm z|D#{P=v>c#mGyY)4>*_58ZBcLMabE@%%q~ry0(S56jlKOg7bUz8Ke=$LkiYlH`l!|`O4|V zNy^tYQ+i$3;e}nm`1!5u+!He{7OjDa0y$c4)BoN;SbqZn_f~I%BJ`6RM~gF;dBen2 zKY3KT3wi%kfPxSevhwxG#&YVzU_`VO9=K=`7d@Uc8r3mIG|ciAQ^E~YOzNuyUju-$ z>1_9holw2ata}7hLh23+OEEen)8H^Akl=rs*;C*napfBiOdLCz65<4$=Ugi(ns#Xh zGCz1KEh4I=TES7IhH<(~b!7q&CfF57^uQ=BFHWMpW_~Atnxa$J%(tgWb(b^yNrEOo zvpmyG1N74@%n_B^hfQCi zT)38yA_cpet2$`Ino@qWFqI@fn0BL}{Y_4BqTT9>IcKyROZbcFbxgxuVNC*F;F7oU z2zbHbVk9}thB>@5p&#b)&W44sh<7e5g=M_`uo5odoe!(wBHjfFkQKoTOKIkd*wEf) zd+L=Wa}o-@uSY1AUq)VnsZVG-K#d)XX*H;&>;Hg7!h!Na`>0P-{J>@O31li;rs{51dwfR~wGAQ1nbD)6EW4A6L_R+$8~-ICA> zs6)csM-{=|T&oa!{L%iLX%z;3G(1(<@EJs=vXpgr5UC$~Cpeje^vofym7(>%g%Wx^ zu%rFMrxB+@3mn;9gC0QK>Tn%?JtC3Fsg8=Y?R9?D(#2=3{V(BI?YYGG%=db+xsRll_V-u`=tCNE&7)niD{ z(Zc?F=yM@-cRlqz>6f!y*usGzR#KkkgcJ3}TGfyLOidZdi;$M)O)O!Sf z1)#AsaULjo5l`a?j07-@CgNC3U<4OT=kfR-4;)n<`U|sV5GMA75pj~Lvq@HGXh9!4U_Psh z@DP|U2j(lV)`a=|Q69`!)Cj2w^A+f@Y9Gv30Q0>L=KI`hR#HmJFo$r?4aQplSt3XU zm%FOI1u+Qn$Bc6F&cT%AHw9q^{S>!65UdM=Rev3G7jkXX)R<|~r8*(_8w8|R^)~@< zFQGFqp^7qh4ni-WnvT`qVwJy5@GXKFm8!qP&%aABr@_*M2H9L_kO@PBc_w8?p+QVB z4k@N%p|bi8`bx!j<<*Xvqx&ly;#Ud&0V|ZIjf2}CJY2rOZ8b6CQzZ0fNkW&=*aBgA zcHQyabwflT7SAJD;mAl__*D{vTV!b8A)X7fy33d7?t z4Rat((Sk-5oUGY$hJ{xj+2?t|f40|xJ=l8g2(AAYDp*HX%=8#L4{qTwG`{|94`(vH z_&Fp@WjPSojqav772yyzj(84lg6$1wV#`U>^TQS9z1}6ZM1jN8IX`5ZdWgR(ct}iw zhO1}-iyer7Mg{|%c(3OeRic)`i3ra>cyGqj@Cjb`j2|Pui;z9?+)+(D6bpK+4h?o; z8(syTi+ENb|5p!xHG$I%U6Mtd+7Y(-=4g#lKD55-=(R0e3V{azZ%AK)bzVbs2XQEk za}`MOwUff@+0pvw0%r2S=4(Ne#=MYPg)Z>b@9T#~tAi@) zmGr892>uD9TdR5*KFqpYMp;4X0j4mcirUi`@m-dZ2S?@oJ?J^q)))1PUSI?(biPR~ z;+lwIBbR!6FelOl9=G6(4*r4Io@rS!rdBVG*;&r`iuz|jw)zc%e-3~nmtSL=R-dsy zXnGhH{YOlRKmF@WiD5zq!Z5#h2S1I^G~3$SgX2nu zIn^%`(6U#IAvMeN1Ll#`Ci6tqAgtbDK=>SCOPE`eqMt=o%e@TlhiwjpA%8eqsDk$$ z{CNWFPE`~}76(JL)3f|C)>+x`!o*To{ZtBk-1zcBd&h7_c{Ga=0Y& z463O)ss*>_bRk0j6DjzuQ~bDK<}fR3Qxfs_Bpzxl7f<|KfcLx!J9;NP?8H%r+`VF8 zSMC9UnVfO<1c#fvX@J9#95e_*z~&~Gse`)A1>>I1MN97kEj^3}7a8miCf~M20Ax&P zd6a+0ddEh29@+^9PGEKs3dku;LdE6Rop;=KoO|xLcw)Wd-gD&byluU0zwNy3zU^&g zLOLlvbRzCBk^P}@D-aF{6pyO!I)~rTRg{!>t#@6x{|G4KA_HogZ#XvYTb8a!t3~u? z;|LwS=|z*1EF{(OqFy{@Q2yA|6vP-yc{om~s(;ily-d1~?EJ zs3V2o1yUD~TJ9p)VO#Io`%UQb>iD8wq7X5dl<)fd8%Myal6OG_%^F1BCCq;XrtSa6 z$m@p?br`vZk=Lc~)k)vKKj~Y9+2|5*x(4C5DuOSk*J#p1AXY^His+-b8(qOzmngnQ zA46(ge~h>aC4i1qT^&8FFMs%sU@q5mmBFlc9kmnY23g>`g1va;@asuQKO%zpr$>*% zaDEg5dHJ5p_dSOYYi#HTCI2y5o1?y?ukd>Sjv0OYaMSEA=OO((J9->gd_X^}AJvaj zz>hDVSo-RjuZDh1e?0W>XGTxxYrxDCf){81yRTXAI{Qbj;m+TvayS599@N)PKsRr^ zDZ96E&+9%kzLI>bd-a5?an*T=hH5~gxm964-CGdGe z-+;O(n4`p*F+r`I$FoE(r|-HAwfn|rMzBe-o(X54;ObLoZQJ*7j6>WLZaMdG2)Zga zG1YVTgy(^E@YMax&pZ3H7rkxtCqHp*KJtoG&RmhA^NS$W5EdS;5SaUcl~-?m`jwl( z3okzZ@(Vw{`B|ffM8i0#bNxvP>)<9$hC!nz)6!Ja$ybJ^T^n8&UOPre&YXikDm+VF z*dF%xp8M`pB4)j#4I>fJ1bXGPK{Ty=26+^Zui}YmxC!zKyvf_O3=)idw&j8m?4|#J zN*`vNssD_E-=0lkephg68_NDXJ{{sJhrkZuTH3L_iz6g$4@&%+O4-wcXN*lQafN@+ z@o8|SWftIPIb^_z^8CII1Nv8HYv#Hthh&>_}e}Yy2BmvdM z{2tyJ6j7H6it0!Rib|v}gg@=m^Th2?LrtOFxrOJ=RcBkFfpt4DA^ zKxLWcX^zURqEqK` za+t28MdQiyI{ug0&qo_kZ?a08;NJl>CEEI=`YzHm=i`H3B9|@Ulr_tz@ASoDDZ$6a z6%+|h;S#{9kGA=ko|@3vXy&H%CW*GO#NK7uX`XxvCx_^D%B98{`vufeKS?mR%Wy@= zT>3;D_6B>Y5Sg>PfN>LI0^gl5ZsyseI3djn@2d?}XWM+MUt!D1lsX6tn}eR9)0}tT z5ihXm528ELs9BP(0^{VQg^A;afebTe)PLkmf0y9*2>ug+FijPyG;1Wsx5+Z}V{t&~ zUd442253v(hF5b662A4_nup*n{x+n{moOe;4*U~SQ7&UUR}tu?L&=B)j*haE8ZbL? ziNzB~6XoomL1V--oO+h=44R-mLdhO-mvQ*XaPbCAPu@~u|Le|C>9nYuS$-r{%82Lj z#D@UTcnl6s5BMFqM{nbZA3;9^>kx++6%Rj$z+6_e>~jp7=@PWHO_vF82i61ME}SR6 zaS<498ErcRUQawYa|ksWXJ`L9?%w0NT!;Ul;cTV_dNm!nW(aw66SFY~<`O#i1AdYd z8Gb033eB;4OSu4u!{8rd0+w6{8{!{m6cq#hm4Q)7 zMYkheoL7PP+~zqI0~``)!s)=Yy=XAX15UAZkPNp~D>QK=(EvF{-naJ-B#Mdah;h)m z-RkuC&p0B+d5IjZGD1ZITnk1Rl79245B~p#oLs4^9Q`qZj}uS<<0j#)E-p5T!IEad zLAYdWZn|!<&XC}z2#D?ZMwpaH2>;o>w0e$skt_JToKOQL@YW!&DU|S+1+`EDKx#OC U)?dKm`CfIo)~GGjZq%Cp7YU@MrvLx| literal 0 HcmV?d00001 diff --git a/fastSum/PointerGen/model/loss.py b/fastSum/PointerGen/model/loss.py new file mode 100644 index 0000000..2db0acc --- /dev/null +++ b/fastSum/PointerGen/model/loss.py @@ -0,0 +1,62 @@ +import torch +import numpy as np + +from fastNLP.core.losses import LossBase + +def is_infinite_loss(losses): + for loss in losses: + if not (np.isfinite(loss.data.cpu())).numpy(): + # print("the infinite loss is :", loss) + return True + return False + +class MyLoss(LossBase): + def __init__(self, config=None, target=None, list_final_dist=None, list_coverage=None, list_attn=None, + max_dec_len=None, dec_padding_mask=None, dec_lens_var=None, padding_idx=-100, reduce='mean'): + super().__init__() + self._init_param_map(target=target, list_final_dist=list_final_dist, list_coverage=list_coverage, + list_attn=list_attn, max_dec_len=max_dec_len, dec_padding_mask=dec_padding_mask, + dec_lens_var=dec_lens_var) + self.padding_idx = padding_idx + self.reduce = reduce + self.config = config + + def get_loss(self, target, list_final_dist, list_coverage, list_attn, max_dec_len, dec_padding_mask, dec_lens_var): + step_losses = [] + config = self.config + target_batch = target + if config.use_gpu: + target = target.cuda() + target_batch = target_batch.cuda() + + for di in range(min(max_dec_len, config.max_dec_steps)): + + target = target_batch[:, di] + final_dist = list_final_dist[di] + attn_dist = list_attn[di] + + gold_probs = torch.gather(final_dist, 1, target.unsqueeze(1)).squeeze() + step_loss = -torch.log(gold_probs + config.eps) + + if config.is_coverage: + coverage = list_coverage[di] + step_coverage_loss = torch.sum(torch.min(attn_dist, coverage), 1) + step_loss = step_loss + config.cov_loss_wt * step_coverage_loss + + step_mask = dec_padding_mask[:, di] + step_loss = step_loss * step_mask + # if is_infinite_loss(step_loss): + # print("catch inifite loss: ", step_loss) + # print("gold_probs: ", gold_probs) + # print("final_dist: ", final_dist) + # print("target: ", target) + step_losses.append(step_loss) + sum_losses = torch.sum(torch.stack(step_losses, 1), 1) + batch_avg_loss = sum_losses / dec_lens_var.float() + + loss = torch.mean(batch_avg_loss) + + # if not (np.isfinite(loss.data.cpu())).numpy(): + # print("dec_lens_var: ", dec_lens_var) + + return loss diff --git a/fastSum/PointerGen/model/metric.py b/fastSum/PointerGen/model/metric.py new file mode 100644 index 0000000..1bbbddc --- /dev/null +++ b/fastSum/PointerGen/model/metric.py @@ -0,0 +1,155 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# __author__="Danqing Wang" + +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +from __future__ import division + +from rouge import Rouge + +from fastNLP.core.metrics import MetricBase + +from data_util.logging import logger +from data_util.utils import pyrouge_score_all, pyrouge_score_all_multi + +from data_util.data import outputids2words +from data_util import data + + +def remend_score(scores_all): + remend_score = {} + for key, value in scores_all.items(): + for subkey, subvalue in value.items(): + remend_score[key + "-" + subkey] = subvalue + return remend_score + + +def make_html_safe(s): + s = s.replace("<", "<") + s = s.replace(">", ">") + if "<" in s or ">" in s: + print("-------html not safe sent:") + print(s) + return s + + +class RougeMetric(MetricBase): + def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): + super().__init__() + + self.vocab = vocab + self.config = config + self._init_param_map(pred=pred, art_oovs=art_oovs, abstract_sentences=abstract_sentences) + + self.prediction = [] + self.referece = [] + + def evaluate(self, pred, art_oovs, abstract_sentences): + """ + + :param prediction: [batch, N] + :param text: [batch, N] + :param summary: [batch, N] + :return: + """ + + batch_size = len(pred) + + for j in range(batch_size): + # print(j,"----------------------",pred[j]) + output_ids = [int(id) for id in pred[j]] + decoded_words = outputids2words(output_ids, self.vocab, + (art_oovs[j] if self.config.pointer_gen else None)) + + ''' + if batch_size == 1 and not isinstance(art_oovs[j], list): + print("art oovs: ",art_oovs) + decoded_words = outputids2words(output_ids, self.vocab, (art_oovs if self.config.pointer_gen else None)) + else: + decoded_words = outputids2words(output_ids, self.vocab, + (art_oovs[j] if self.config.pointer_gen else None)) + ''' + # Remove the [STOP] token from decoded_words, if necessary + try: + fst_stop_idx = decoded_words.index(data.STOP_DECODING) + decoded_words = decoded_words[:fst_stop_idx] + except ValueError: + decoded_words = decoded_words + if len(decoded_words) < self.config.min_dec_steps: + continue + + decoded_sents = [] + while len(decoded_words) > 0: + try: + fst_period_idx = decoded_words.index(".") + except ValueError: + fst_period_idx = len(decoded_words) + sent = decoded_words[:fst_period_idx + 1] + decoded_words = decoded_words[fst_period_idx + 1:] + decoded_sents.append(' '.join(sent)) + + self.prediction.append("\n".join([make_html_safe(sent) for sent in decoded_sents])) + self.referece.append("\n".join([make_html_safe(sent) for sent in abstract_sentences[j]])) + ''' + if batch_size == 1 and not isinstance(abstract_sentences[j], list): + #print("abstract sentences",abstract_sentences) + self.referece.append(" ".join(abstract_sentences[0])) + else: + self.referece.append(" ".join(abstract_sentences[j])) + ''' + + def get_metric(self, reset=True): + pass + + +class FastRougeMetric(RougeMetric): + def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): + super().__init__(pred, art_oovs, abstract_sentences, config, vocab) + + def get_metric(self, reset=True): + logger.info("[INFO] Hyps and Refer number is %d, %d", len(self.prediction), len(self.referece)) + if len(self.prediction) == 0 or len(self.referece) == 0: + logger.error("During testing, no hyps or refers is selected!") + return + rouge = Rouge() + scores_all = rouge.get_scores(self.prediction, self.referece, avg=True) + if reset: + self.prediction = [] + self.referece = [] + logger.info(scores_all) + scores_all = remend_score(scores_all) + return scores_all + + +class PyRougeMetric(RougeMetric): + def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): + super().__init__(pred, art_oovs, abstract_sentences, config, vocab) + + def get_metric(self, reset=True): + logger.info("[INFO] Hyps and Refer number is %d, %d", len(self.prediction), len(self.referece)) + if len(self.prediction) == 0 or len(self.referece) == 0: + logger.error("During testing, no hyps or refers is selected!") + return + if isinstance(self.referece[0], list): + logger.info("Multi Reference summaries!") + scores_all = pyrouge_score_all_multi(self.prediction, self.referece, self.config) + else: + scores_all = pyrouge_score_all(self.prediction, self.referece, self.config) + if reset: + self.prediction = [] + self.referece = [] + logger.info(scores_all) + return scores_all diff --git a/fastSum/PointerGen/model/model.bak.py b/fastSum/PointerGen/model/model.bak.py new file mode 100644 index 0000000..1f40e28 --- /dev/null +++ b/fastSum/PointerGen/model/model.bak.py @@ -0,0 +1,546 @@ +# from __future__ import unicode_literals, print_function, division + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence +from data_util.config import Config +from numpy import random +from data_util.logging import logger +import numpy as np + +from data_util import data + +from torch.autograd import Variable + +config = Config() +use_cuda = config.use_gpu and torch.cuda.is_available() + +random.seed(123) +torch.manual_seed(123) +if torch.cuda.is_available(): + torch.cuda.manual_seed_all(123) + + +def is_infinite_dist(distss): + is_nan_list = torch.isnan(distss) + if (is_nan_list.max() == 1).item() == 1: + return True + return False + + +def init_lstm_wt(lstm): + for names in lstm._all_weights: + for name in names: + if name.startswith('weight_'): + wt = getattr(lstm, name) + wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) + elif name.startswith('bias_'): + # set forget bias to 1 + bias = getattr(lstm, name) + n = bias.size(0) + start, end = n // 4, n // 2 + bias.data.fill_(0.) + bias.data[start:end].fill_(1.) + + +def init_linear_wt(linear): + linear.weight.data.normal_(std=config.trunc_norm_init_std) + if linear.bias is not None: + linear.bias.data.normal_(std=config.trunc_norm_init_std) + + +def init_wt_normal(wt): + wt.data.normal_(std=config.trunc_norm_init_std) + + +def init_wt_unif(wt): + wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) + + +class Beam(object): + def __init__(self, tokens, log_probs, state, context, coverage): + # 一个beam可以理解为存储着一组到当前位置字的“路线” + self.tokens = tokens + self.log_probs = log_probs + self.state = state + self.context = context + self.coverage = coverage + + def extend(self, token, log_prob, state, context, coverage): + return Beam(tokens=self.tokens + [token], log_probs=self.log_probs + [log_prob], state=state, context=context, + coverage=coverage) + + @property + def latest_token(self): + return self.tokens[-1] + + @property + def avg_log_prob(self): + return sum(self.log_probs) / len(self.tokens) + + +class Encoder(nn.Module): + def __init__(self): + super(Encoder, self).__init__() + self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) + init_wt_normal(self.embedding.weight) + + self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=True) + init_lstm_wt(self.lstm) + + self.W_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2, bias=False) + + # seq_lens should be in descending order + def forward(self, input, seq_lens): + embedded = self.embedding(input) + + _, indices = torch.sort(seq_lens, dim=0, descending=True) + _, desorted_indices = torch.sort(indices, dim=0) + embedded = embedded.index_select(0, indices) + lengths = list(seq_lens[indices]) + + packed = pack_padded_sequence(embedded, lengths, batch_first=True) + output, hidden = self.lstm(packed) + + encoder_outputs, _ = pad_packed_sequence(output, batch_first=True) # h dim = B x t_k x n + # print("inside of encoder : encoder outputs size : ",encoder_outputs.size()) + encoder_outputs = encoder_outputs.index_select(0, desorted_indices) + hn, cn = hidden + hn = hn.index_select(1, desorted_indices) + cn = cn.index_select(1, desorted_indices) + hidden = (hn, cn) + encoder_outputs = encoder_outputs.contiguous() + + # encoder_outputs, hidden = self.lstm(embedded) + # encoder_outputs = encoder_outputs.contiguous() + + encoder_feature = encoder_outputs.view(-1, 2 * config.hidden_dim) # B * t_k x 2*hidden_dim + encoder_feature = self.W_h(encoder_feature) + + return encoder_outputs, encoder_feature, hidden + + +class ReduceState(nn.Module): + def __init__(self): + super(ReduceState, self).__init__() + + self.reduce_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim) + init_linear_wt(self.reduce_h) + self.reduce_c = nn.Linear(config.hidden_dim * 2, config.hidden_dim) + init_linear_wt(self.reduce_c) + + def forward(self, hidden): + h, c = hidden # h, c dim = 2 x b x hidden_dim + h_in = h.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) + hidden_reduced_h = F.relu(self.reduce_h(h_in)) + c_in = c.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) + hidden_reduced_c = F.relu(self.reduce_c(c_in)) + + return (hidden_reduced_h.unsqueeze(0), hidden_reduced_c.unsqueeze(0)) # h, c dim = 1 x b x hidden_dim + + +class Attention(nn.Module): + def __init__(self): + super(Attention, self).__init__() + # attention + if config.is_coverage: + self.W_c = nn.Linear(1, config.hidden_dim * 2, bias=False) + self.decode_proj = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2) + self.v = nn.Linear(config.hidden_dim * 2, 1, bias=False) + + def forward(self, s_t_hat, encoder_outputs, encoder_feature, enc_padding_mask, coverage): + b, t_k, n = list(encoder_outputs.size()) + dec_fea = self.decode_proj(s_t_hat) # B x 2*hidden_dim + dec_fea_expanded = dec_fea.unsqueeze(1).expand(b, t_k, n).contiguous() # B x t_k x 2*hidden_dim + dec_fea_expanded = dec_fea_expanded.view(-1, n) # B * t_k x 2*hidden_dim + + att_features = encoder_feature + dec_fea_expanded # B * t_k x 2*hidden_dim + if config.is_coverage: + coverage_input = coverage.view(-1, 1) # B * t_k x 1 + coverage_feature = self.W_c(coverage_input) # B * t_k x 2*hidden_dim + att_features = att_features + coverage_feature + + e = torch.tanh(att_features) # B * t_k x 2*hidden_dim + scores = self.v(e) # B * t_k x 1 + scores = scores.view(-1, t_k) # B x t_k + + attn_dist_ = F.softmax(scores, dim=1) * enc_padding_mask # B x t_k + normalization_factor = attn_dist_.sum(1, keepdim=True) + attn_dist = attn_dist_ / normalization_factor + + attn_dist = attn_dist.unsqueeze(1) # B x 1 x t_k + c_t = torch.bmm(attn_dist, encoder_outputs) # B x 1 x n + c_t = c_t.view(-1, config.hidden_dim * 2) # B x 2*hidden_dim + + attn_dist = attn_dist.view(-1, t_k) # B x t_k + + if config.is_coverage: + coverage = coverage.view(-1, t_k) + coverage = coverage + attn_dist + + return c_t, attn_dist, coverage + + +class Decoder(nn.Module): + def __init__(self): + super(Decoder, self).__init__() + self.attention_network = Attention() + # decoder + self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) + init_wt_normal(self.embedding.weight) + + self.x_context = nn.Linear(config.hidden_dim * 2 + config.emb_dim, config.emb_dim) + + self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=False) + init_lstm_wt(self.lstm) + + if config.pointer_gen: + self.p_gen_linear = nn.Linear(config.hidden_dim * 4 + config.emb_dim, 1) + + # p_vocab + self.out1 = nn.Linear(config.hidden_dim * 3, config.hidden_dim) + self.out2 = nn.Linear(config.hidden_dim, config.vocab_size) + init_linear_wt(self.out2) + + def forward(self, y_t_1, s_t_1, encoder_outputs, encoder_feature, enc_padding_mask, + c_t_1, extra_zeros, enc_batch_extend_vocab, coverage, step): + + if not self.training and step == 0: + h_decoder, c_decoder = s_t_1 + s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), + c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim + c_t, _, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, + enc_padding_mask, coverage) + coverage = coverage_next + + y_t_1_embd = self.embedding(y_t_1) + x = self.x_context(torch.cat((c_t_1, y_t_1_embd), 1)) + lstm_out, s_t = self.lstm(x.unsqueeze(1), s_t_1) + + h_decoder, c_decoder = s_t + s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), + c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim + c_t, attn_dist, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, + enc_padding_mask, coverage) + + if self.training or step > 0: + coverage = coverage_next + + p_gen = None + if config.pointer_gen: + p_gen_input = torch.cat((c_t, s_t_hat, x), 1) # B x (2*2*hidden_dim + emb_dim) + p_gen = self.p_gen_linear(p_gen_input) + p_gen = torch.sigmoid(p_gen) + + output = torch.cat((lstm_out.view(-1, config.hidden_dim), c_t), 1) # B x hidden_dim * 3 + output = self.out1(output) # B x hidden_dim + # output = F.relu(output) + + output = self.out2(output) # B x vocab_size + vocab_dist = F.softmax(output, dim=1) + + if config.pointer_gen: + vocab_dist_ = p_gen * vocab_dist + attn_dist_ = (1 - p_gen) * attn_dist + + if extra_zeros is not None: + vocab_dist_ = torch.cat([vocab_dist_, extra_zeros], 1) + final_dist = vocab_dist_.scatter_add_(1, enc_batch_extend_vocab, attn_dist_) + else: + final_dist = vocab_dist + + if is_infinite_dist(final_dist): + print("catch nan final dist: ", final_dist) + print("embedding weight:", self.embedding.weight) + print("y_t_1_embd: ", y_t_1_embd) + print("y_t_1:", y_t_1) + + return final_dist, s_t, c_t, attn_dist, p_gen, coverage + + +class Model(torch.nn.Module): + def __init__(self, vocab=None): + super(Model, self).__init__() + encoder = Encoder() + decoder = Decoder() + reduce_state = ReduceState() + self.vocab = vocab + + # shared the embedding between encoder and decoder + decoder.embedding.weight = encoder.embedding.weight + + if use_cuda: + encoder = encoder.cuda() + decoder = decoder.cuda() + reduce_state = reduce_state.cuda() + + self.encoder = encoder + self.decoder = decoder + self.reduce_state = reduce_state + + def get_input_from_batch(self, enc_len, enc_input, enc_input_extend_vocab, article_oovs): + enc_lens = enc_len + batch_size = len(enc_lens) + max_enc_seq_len = np.max(np.array(enc_lens.cpu())) + enc_padding_mask = np.zeros((batch_size, max_enc_seq_len), dtype=np.float32) + + # Fill in the numpy arrays + for i, lens in enumerate(enc_lens): + for j in range(lens): + enc_padding_mask[i][j] = 1 + + # enc_batch = Variable(torch.from_numpy(np.array(enc_input)).long()) + enc_batch = enc_input + enc_padding_mask = Variable(torch.from_numpy(enc_padding_mask)).float() + extra_zeros = None + enc_batch_extend_vocab = None + + if config.pointer_gen: + enc_batch_extend_vocab = enc_input_extend_vocab + # max_art_oovs is the max over all the article oov list in the batch + # max_art_oovs = max([len(article_oov) for article_oov in article_oovs]) + max_art_oovs = 0 + for article_oov in article_oovs: + if "N O N E" in article_oov: + continue + else: + max_art_oovs = max(max_art_oovs, len(article_oov)) + if max_art_oovs > 0: + extra_zeros = Variable(torch.zeros((batch_size, max_art_oovs))) + + c_t_1 = Variable(torch.zeros((batch_size, 2 * config.hidden_dim))) + + coverage = None + if config.is_coverage: + coverage = Variable(torch.zeros(enc_batch.size())) + # coverage = Variable(torch.zeros(batch_size, max_enc_seq_len)) + + if use_cuda: + enc_batch = enc_batch.cuda() + enc_padding_mask = enc_padding_mask.cuda() + if enc_batch_extend_vocab is not None: + enc_batch_extend_vocab = enc_batch_extend_vocab.cuda() + if extra_zeros is not None: + extra_zeros = extra_zeros.cuda() + c_t_1 = c_t_1.cuda() + if coverage is not None: + coverage = coverage.cuda() + return enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage + + def get_output_from_batch(self, dec_len, dec_input): + # get_output_from_batch + dec_batch = dec_input + dec_lens = dec_len + max_dec_len = np.max(np.array(dec_lens.cpu())) + + batch_size = len(dec_lens) + + # dec_padding_mask = np.zeros((batch_size, config.max_dec_steps), dtype=np.float32) + dec_padding_mask = np.zeros((batch_size, min(max_dec_len, config.max_dec_steps)), dtype=np.float32) + + # Fill in the numpy arrays + for i, lens in enumerate(dec_lens): + for j in range(lens): + dec_padding_mask[i][j] = 1 + dec_padding_mask = Variable(torch.from_numpy(dec_padding_mask)).float() + + dec_lens_var = dec_lens + + # target_batch = Variable(torch.from_numpy(np.array(target))).long() + + if use_cuda: + dec_batch = dec_batch.cuda() + dec_padding_mask = dec_padding_mask.cuda() + dec_lens_var = dec_lens_var.cuda() + # target_batch = target_batch.cuda() + # target = target_batch + + return dec_batch, max_dec_len, dec_padding_mask, dec_lens_var + + def sort_beams(self, beams): + return sorted(beams, key=lambda h: h.avg_log_prob, reverse=True) + + def forward(self, enc_len, enc_input, dec_input, dec_len, article_oovs, enc_input_extend_vocab): + # print("start forward",enc_input.size()) + enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage = \ + self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, article_oovs) + dec_batch, max_dec_len, dec_padding_mask, dec_lens_var = self.get_output_from_batch(dec_len, dec_input) + + encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) + s_t_1 = self.reduce_state(encoder_hidden) + + # step_losses = [] + list_final_dist = [] + list_coverage = [] + list_attn = [] + pred = None + + for di in range(min(max_dec_len, config.max_dec_steps)): + y_t_1 = dec_batch[:, di] # Teacher forcing + final_dist, s_t_1, c_t_1, attn_dist, p_gen, next_coverage = self.decoder(y_t_1, s_t_1, + encoder_outputs, + encoder_feature, + enc_padding_mask, c_t_1, + extra_zeros, + enc_batch_extend_vocab, + coverage, di) + + _, max_position = torch.max(final_dist, 1) + max_position = max_position.unsqueeze(1) + if pred is None: + pred = max_position + else: + pred = torch.cat((pred, max_position), 1) + + list_final_dist.append(final_dist) + list_attn.append(attn_dist) + if config.is_coverage: + list_coverage.append(coverage) + coverage = next_coverage + + return {"pred": pred, "list_final_dist": list_final_dist, "list_coverage": list_coverage, + "list_attn": list_attn, "max_dec_len": max_dec_len, "dec_padding_mask": dec_padding_mask, + "dec_lens_var": dec_lens_var} + + def unpadding(self, enc_len, enc_input, enc_input_extend_vocab): + return enc_input[:enc_len], enc_input_extend_vocab[:enc_len] + + def decode(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): + enc_input, enc_input_extend_vocab = self.unpadding(enc_len, enc_input, enc_input_extend_vocab) + + # print("before: ", enc_input.size()," ",enc_len.size()," ",(np.array(article_oovs)).shape," ",enc_input_extend_vocab.size()) + enc_input = enc_input.unsqueeze(0).expand(config.beam_size, list(enc_input.size())[0]).contiguous() + enc_len = enc_len.unsqueeze(0).expand(config.beam_size).contiguous() + enc_input_extend_vocab = enc_input_extend_vocab.unsqueeze(0).expand(config.beam_size, + list(enc_input_extend_vocab.size())[ + 0]).contiguous() + # print("after: ", enc_input.size(), " ", enc_len.size(), " ", np.array(article_oovs).shape, " ", enc_input_extend_vocab.size()) + + enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_0, coverage_t_0 = \ + self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, [article_oovs]) + + # print("-----in decoder: sizeof enc_batch and enc_lens: ",enc_batch.size()," ",enc_lens.size()) + # print("------length infomation: ",enc_lens) + encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) + # print("******in decoder: sizeof encoder_outputs and encoder_feature: ", encoder_outputs.size(), " ", encoder_feature.size()) + s_t_0 = self.reduce_state(encoder_hidden) + + dec_h, dec_c = s_t_0 # 1 x 2*hidden_size + dec_h = dec_h.squeeze() + dec_c = dec_c.squeeze() + + # decoder batch preparation, it has beam_size example initially everything is repeated + beams = [Beam(tokens=[self.vocab.to_index(data.START_DECODING)], + log_probs=[0.0], + state=(dec_h[0], dec_c[0]), + context=c_t_0[0], + coverage=(coverage_t_0[0] if config.is_coverage else None)) for _ in range(config.beam_size)] + results = [] + steps = 0 + while steps < config.max_dec_steps and len(results) < config.beam_size: + latest_tokens = [h.latest_token for h in beams] + latest_tokens = [t if t < len(self.vocab) else self.vocab.to_index(data.UNKNOWN_TOKEN) \ + for t in latest_tokens] + y_t_1 = Variable(torch.LongTensor(latest_tokens)) + if use_cuda: + y_t_1 = y_t_1.cuda() + all_state_h = [] + all_state_c = [] + all_context = [] + + for h in beams: + state_h, state_c = h.state + all_state_h.append(state_h) + all_state_c.append(state_c) + all_context.append(h.context) + + s_t_1 = (torch.stack(all_state_h, 0).unsqueeze(0), torch.stack(all_state_c, 0).unsqueeze(0)) + c_t_1 = torch.stack(all_context, 0) + + coverage_t_1 = None + if config.is_coverage: + all_coverage = [] + for h in beams: + all_coverage.append(h.coverage) + coverage_t_1 = torch.stack(all_coverage, 0) + + # print("-"*20) + # print(article_oovs) + # print(extra_zeros) + + final_dist, s_t, c_t, attn_dist, p_gen, coverage_t = self.decoder(y_t_1, s_t_1, + encoder_outputs, encoder_feature, + enc_padding_mask, c_t_1, + extra_zeros, enc_batch_extend_vocab, + coverage_t_1, steps) + # print("final_dist: ", final_dist) + log_probs = torch.log(final_dist) + topk_log_probs, topk_ids = torch.topk(log_probs, config.beam_size * 2) + # print("topk_log_probs: ", topk_log_probs) + # print("topk_ids: ", topk_ids) + + dec_h, dec_c = s_t + dec_h = dec_h.squeeze() + dec_c = dec_c.squeeze() + + all_beams = [] + num_orig_beams = 1 if steps == 0 else len(beams) + for i in range(num_orig_beams): + h = beams[i] + state_i = (dec_h[i], dec_c[i]) + context_i = c_t[i] + coverage_i = (coverage_t[i] if config.is_coverage else None) + + for j in range(config.beam_size * 2): # for each of the top 2*beam_size hyps: + # print("log_probs.size: ",log_probs.size, "topk_ids.size: ", topk_ids.size()) + # print("i,j: ", i, ",", j, "topk_ids: ",topk_ids) + # print(topk_ids[i]) + # print(topk_ids[i,j]) + # print("topk_ids[i,j].item: ", topk_ids[i, j].item()) + new_beam = h.extend(token=topk_ids[i, j].item(), + log_prob=topk_log_probs[i, j].item(), + state=state_i, + context=context_i, + coverage=coverage_i) + all_beams.append(new_beam) + + beams = [] + for h in self.sort_beams(all_beams): + if h.latest_token == self.vocab.to_index(data.STOP_DECODING): + if steps >= config.min_dec_steps: + results.append(h) + else: + beams.append(h) + if len(beams) == config.beam_size or len(results) == config.beam_size: + break + + steps += 1 + + if len(results) == 0: + results = beams + + beams_sorted = self.sort_beams(results) + output_ids = [int(t) for t in beams_sorted[0].tokens[1:]] + + return output_ids + + def predict(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): + # batch should have only one example + # print("start predict",enc_input.size()) + output_ids = [] + batch_size, seq_len = list(enc_input.size()) + + enc_len_tmp = enc_len + enc_input_tmp = enc_input + article_oovs_tmp = article_oovs + enc_input_extend_vocab_tmp = enc_input_extend_vocab + for _num in range(batch_size): + enc_len = enc_len_tmp[_num] + enc_input = enc_input_tmp[_num] + article_oovs = article_oovs_tmp[_num] + enc_input_extend_vocab = enc_input_extend_vocab_tmp[_num] + pred = self.decode(enc_len, enc_input, article_oovs, enc_input_extend_vocab) + output_ids.append(pred) + + return {"prediction": output_ids} diff --git a/fastSum/PointerGen/model/model.py b/fastSum/PointerGen/model/model.py new file mode 100644 index 0000000..5956e08 --- /dev/null +++ b/fastSum/PointerGen/model/model.py @@ -0,0 +1,558 @@ +# from __future__ import unicode_literals, print_function, division + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence +# from data_util.config import Config +from numpy import random +from data_util.logging import logger +import numpy as np +from data_util import data +from torch.autograd import Variable + +# use_cuda = config.use_gpu and torch.cuda.is_available() + +random.seed(123) +torch.manual_seed(123) +if torch.cuda.is_available(): + torch.cuda.manual_seed_all(123) + + +def is_infinite_dist(distss): + is_nan_list = torch.isnan(distss) + if (is_nan_list.max() == 1).item() == 1: + return True + return False + + +def init_lstm_wt(config, lstm): + for names in lstm._all_weights: + for name in names: + if name.startswith('weight_'): + wt = getattr(lstm, name) + wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) + elif name.startswith('bias_'): + # set forget bias to 1 + bias = getattr(lstm, name) + n = bias.size(0) + start, end = n // 4, n // 2 + bias.data.fill_(0.) + bias.data[start:end].fill_(1.) + + +def init_linear_wt(config, linear): + linear.weight.data.normal_(std=config.trunc_norm_init_std) + if linear.bias is not None: + linear.bias.data.normal_(std=config.trunc_norm_init_std) + + +def init_wt_normal(config, wt): + wt.data.normal_(std=config.trunc_norm_init_std) + + +def init_wt_unif(config, wt): + wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) + + +class Beam(object): + def __init__(self, tokens, log_probs, state, context, coverage): + # 一个beam可以理解为存储着一组到当前位置字的“路线” + self.tokens = tokens + self.log_probs = log_probs + self.state = state + self.context = context + self.coverage = coverage + + def extend(self, token, log_prob, state, context, coverage): + return Beam(tokens=self.tokens + [token], log_probs=self.log_probs + [log_prob], state=state, context=context, + coverage=coverage) + + @property + def latest_token(self): + return self.tokens[-1] + + @property + def avg_log_prob(self): + return sum(self.log_probs) / len(self.tokens) + + +class Encoder(nn.Module): + def __init__(self,config): + super(Encoder, self).__init__() + self.config = config + self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) + init_wt_normal(config, self.embedding.weight) + + self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=True) + init_lstm_wt(config, self.lstm) + + self.W_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2, bias=False) + + # seq_lens should be in descending order + def forward(self, input, seq_lens): + config = self.config + embedded = self.embedding(input) + + _, indices = torch.sort(seq_lens, dim=0, descending=True) + _, desorted_indices = torch.sort(indices, dim=0) + embedded = embedded.index_select(0, indices) + lengths = list(seq_lens[indices]) + + packed = pack_padded_sequence(embedded, lengths, batch_first=True) + output, hidden = self.lstm(packed) + + encoder_outputs, _ = pad_packed_sequence(output, batch_first=True) # h dim = B x t_k x n + + encoder_outputs = encoder_outputs.index_select(0, desorted_indices) + hn, cn = hidden + hn = hn.index_select(1, desorted_indices) + cn = cn.index_select(1, desorted_indices) + hidden = (hn, cn) + encoder_outputs = encoder_outputs.contiguous() + + encoder_feature = encoder_outputs.view(-1, 2 * config.hidden_dim) # B * t_k x 2*hidden_dim + encoder_feature = self.W_h(encoder_feature) + + return encoder_outputs, encoder_feature, hidden + + +class ReduceState(nn.Module): + def __init__(self, config): + super(ReduceState, self).__init__() + self.config = config + self.reduce_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim) + init_linear_wt(config, self.reduce_h) + self.reduce_c = nn.Linear(config.hidden_dim * 2, config.hidden_dim) + init_linear_wt(config, self.reduce_c) + + def forward(self, hidden): + config = self.config + h, c = hidden # h, c dim = 2 x b x hidden_dim + h_in = h.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) + hidden_reduced_h = F.relu(self.reduce_h(h_in)) + c_in = c.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) + hidden_reduced_c = F.relu(self.reduce_c(c_in)) + + return (hidden_reduced_h.unsqueeze(0), hidden_reduced_c.unsqueeze(0)) # h, c dim = 1 x b x hidden_dim + + +class Attention(nn.Module): + def __init__(self, config): + super(Attention, self).__init__() + self.config = config + # attention + if config.is_coverage: + self.W_c = nn.Linear(1, config.hidden_dim * 2, bias=False) + self.decode_proj = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2) + self.v = nn.Linear(config.hidden_dim * 2, 1, bias=False) + + def forward(self, s_t_hat, encoder_outputs, encoder_feature, enc_padding_mask, coverage): + config = self.config + + b, t_k, n = list(encoder_outputs.size()) + dec_fea = self.decode_proj(s_t_hat) # B x 2*hidden_dim + dec_fea_expanded = dec_fea.unsqueeze(1).expand(b, t_k, n).contiguous() # B x t_k x 2*hidden_dim + dec_fea_expanded = dec_fea_expanded.view(-1, n) # B * t_k x 2*hidden_dim + + att_features = encoder_feature + dec_fea_expanded # B * t_k x 2*hidden_dim + if config.is_coverage: + coverage_input = coverage.view(-1, 1) # B * t_k x 1 + coverage_feature = self.W_c(coverage_input) # B * t_k x 2*hidden_dim + att_features = att_features + coverage_feature + + e = torch.tanh(att_features) # B * t_k x 2*hidden_dim + scores = self.v(e) # B * t_k x 1 + scores = scores.view(-1, t_k) # B x t_k + + attn_dist_ = F.softmax(scores, dim=1) * enc_padding_mask # B x t_k + normalization_factor = attn_dist_.sum(1, keepdim=True) + attn_dist = attn_dist_ / normalization_factor + + attn_dist = attn_dist.unsqueeze(1) # B x 1 x t_k + c_t = torch.bmm(attn_dist, encoder_outputs) # B x 1 x n + c_t = c_t.view(-1, config.hidden_dim * 2) # B x 2*hidden_dim + + attn_dist = attn_dist.view(-1, t_k) # B x t_k + + if config.is_coverage: + coverage = coverage.view(-1, t_k) + coverage = coverage + attn_dist + + return c_t, attn_dist, coverage + + +class Decoder(nn.Module): + def __init__(self, config): + super(Decoder, self).__init__() + self.config = config + self.attention_network = Attention(config) + # decoder + self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) + init_wt_normal(config, self.embedding.weight) + + self.x_context = nn.Linear(config.hidden_dim * 2 + config.emb_dim, config.emb_dim) + + self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=False) + init_lstm_wt(config, self.lstm) + + if config.pointer_gen: + self.p_gen_linear = nn.Linear(config.hidden_dim * 4 + config.emb_dim, 1) + + # p_vocab + self.out1 = nn.Linear(config.hidden_dim * 3, config.hidden_dim) + self.out2 = nn.Linear(config.hidden_dim, config.vocab_size) + init_linear_wt(config, self.out2) + + def forward(self, y_t_1, s_t_1, encoder_outputs, encoder_feature, enc_padding_mask, + c_t_1, extra_zeros, enc_batch_extend_vocab, coverage, step): + config = self.config + + if not self.training and step == 0: + h_decoder, c_decoder = s_t_1 + s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), + c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim + c_t, _, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, + enc_padding_mask, coverage) + coverage = coverage_next + + y_t_1_embd = self.embedding(y_t_1) + x = self.x_context(torch.cat((c_t_1, y_t_1_embd), 1)) + lstm_out, s_t = self.lstm(x.unsqueeze(1), s_t_1) + + h_decoder, c_decoder = s_t + s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), + c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim + c_t, attn_dist, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, + enc_padding_mask, coverage) + + if self.training or step > 0: + coverage = coverage_next + + p_gen = None + if config.pointer_gen: + p_gen_input = torch.cat((c_t, s_t_hat, x), 1) # B x (2*2*hidden_dim + emb_dim) + p_gen = self.p_gen_linear(p_gen_input) + p_gen = torch.sigmoid(p_gen) + + output = torch.cat((lstm_out.view(-1, config.hidden_dim), c_t), 1) # B x hidden_dim * 3 + output = self.out1(output) # B x hidden_dim + # output = F.relu(output) + + output = self.out2(output) # B x vocab_size + vocab_dist = F.softmax(output, dim=1) + + if config.pointer_gen: + vocab_dist_ = p_gen * vocab_dist + attn_dist_ = (1 - p_gen) * attn_dist + + if extra_zeros is not None: + vocab_dist_ = torch.cat([vocab_dist_, extra_zeros], 1) + final_dist = vocab_dist_.scatter_add_(1, enc_batch_extend_vocab, attn_dist_) + else: + final_dist = vocab_dist + + if is_infinite_dist(final_dist): + print("catch nan final dist: ", final_dist) + print("embedding weight:", self.embedding.weight) + print("y_t_1_embd: ", y_t_1_embd) + print("y_t_1:", y_t_1) + + return final_dist, s_t, c_t, attn_dist, p_gen, coverage + + +class Model(torch.nn.Module): + def __init__(self, config, vocab=None): + super(Model, self).__init__() + use_cuda = config.use_gpu and torch.cuda.is_available() + self.use_cuda = use_cuda + encoder = Encoder(config) + decoder = Decoder(config) + reduce_state = ReduceState(config) + self.config = config + self.vocab = vocab + + # shared the embedding between encoder and decoder + decoder.embedding.weight = encoder.embedding.weight + + if use_cuda: + encoder = encoder.cuda() + decoder = decoder.cuda() + reduce_state = reduce_state.cuda() + + self.encoder = encoder + self.decoder = decoder + self.reduce_state = reduce_state + + def get_input_from_batch(self, enc_len, enc_input, enc_input_extend_vocab, article_oovs): + config = self.config + use_cuda = self.use_cuda + enc_lens = enc_len + batch_size = len(enc_lens) + max_enc_seq_len = np.max(np.array(enc_lens.cpu())) + enc_padding_mask = np.zeros((batch_size, max_enc_seq_len), dtype=np.float32) + + # Fill in the numpy arrays + for i, lens in enumerate(enc_lens): + for j in range(lens): + enc_padding_mask[i][j] = 1 + + # enc_batch = Variable(torch.from_numpy(np.array(enc_input)).long()) + enc_batch = enc_input + enc_padding_mask = Variable(torch.from_numpy(enc_padding_mask)).float() + extra_zeros = None + enc_batch_extend_vocab = None + + if config.pointer_gen: + enc_batch_extend_vocab = enc_input_extend_vocab + # max_art_oovs is the max over all the article oov list in the batch + # max_art_oovs = max([len(article_oov) for article_oov in article_oovs]) + max_art_oovs = 0 + for article_oov in article_oovs: + if "N O N E" in article_oov: + continue + else: + max_art_oovs = max(max_art_oovs, len(article_oov)) + if max_art_oovs > 0: + extra_zeros = Variable(torch.zeros((batch_size, max_art_oovs))) + + c_t_1 = Variable(torch.zeros((batch_size, 2 * config.hidden_dim))) + + coverage = None + if config.is_coverage: + coverage = Variable(torch.zeros(enc_batch.size())) + # coverage = Variable(torch.zeros(batch_size, max_enc_seq_len)) + + if use_cuda: + enc_batch = enc_batch.cuda() + enc_padding_mask = enc_padding_mask.cuda() + if enc_batch_extend_vocab is not None: + enc_batch_extend_vocab = enc_batch_extend_vocab.cuda() + if extra_zeros is not None: + extra_zeros = extra_zeros.cuda() + c_t_1 = c_t_1.cuda() + if coverage is not None: + coverage = coverage.cuda() + return enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage + + def get_output_from_batch(self, dec_len, dec_input): + config = self.config + use_cuda = self.use_cuda + # get_output_from_batch + dec_batch = dec_input + dec_lens = dec_len + max_dec_len = np.max(np.array(dec_lens.cpu())) + + batch_size = len(dec_lens) + + # dec_padding_mask = np.zeros((batch_size, config.max_dec_steps), dtype=np.float32) + dec_padding_mask = np.zeros((batch_size, min(max_dec_len, config.max_dec_steps)), dtype=np.float32) + + # Fill in the numpy arrays + for i, lens in enumerate(dec_lens): + for j in range(lens): + dec_padding_mask[i][j] = 1 + dec_padding_mask = Variable(torch.from_numpy(dec_padding_mask)).float() + + dec_lens_var = dec_lens + + # target_batch = Variable(torch.from_numpy(np.array(target))).long() + + if use_cuda: + dec_batch = dec_batch.cuda() + dec_padding_mask = dec_padding_mask.cuda() + dec_lens_var = dec_lens_var.cuda() + # target_batch = target_batch.cuda() + # target = target_batch + + return dec_batch, max_dec_len, dec_padding_mask, dec_lens_var + + def sort_beams(self, beams): + return sorted(beams, key=lambda h: h.avg_log_prob, reverse=True) + + def forward(self, enc_len, enc_input, dec_input, dec_len, article_oovs, enc_input_extend_vocab): + config = self.config + # print("start forward",enc_input.size()) + enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage = \ + self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, article_oovs) + dec_batch, max_dec_len, dec_padding_mask, dec_lens_var = self.get_output_from_batch(dec_len, dec_input) + + encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) + s_t_1 = self.reduce_state(encoder_hidden) + + # step_losses = [] + list_final_dist = [] + list_coverage = [] + list_attn = [] + pred = None + + for di in range(min(max_dec_len, config.max_dec_steps)): + y_t_1 = dec_batch[:, di] # Teacher forcing + final_dist, s_t_1, c_t_1, attn_dist, p_gen, next_coverage = self.decoder(y_t_1, s_t_1, + encoder_outputs, + encoder_feature, + enc_padding_mask, c_t_1, + extra_zeros, + enc_batch_extend_vocab, + coverage, di) + + _, max_position = torch.max(final_dist, 1) + max_position = max_position.unsqueeze(1) + if pred is None: + pred = max_position + else: + pred = torch.cat((pred, max_position), 1) + + list_final_dist.append(final_dist) + list_attn.append(attn_dist) + if config.is_coverage: + list_coverage.append(coverage) + coverage = next_coverage + + return {"list_final_dist": list_final_dist, "list_coverage": list_coverage, + "list_attn": list_attn, "max_dec_len": max_dec_len, "dec_padding_mask": dec_padding_mask, + "dec_lens_var": dec_lens_var} + + def unpadding(self, enc_len, enc_input, enc_input_extend_vocab): + return enc_input[:enc_len], enc_input_extend_vocab[:enc_len] + + def decode(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): + config = self.config + use_cuda = self.use_cuda + enc_input, enc_input_extend_vocab = self.unpadding(enc_len, enc_input, enc_input_extend_vocab) + + # print("before: ", enc_input.size()," ",enc_len.size()," ",(np.array(article_oovs)).shape," ",enc_input_extend_vocab.size()) + enc_input = enc_input.unsqueeze(0).expand(config.beam_size, list(enc_input.size())[0]).contiguous() + enc_len = enc_len.unsqueeze(0).expand(config.beam_size).contiguous() + enc_input_extend_vocab = enc_input_extend_vocab.unsqueeze(0).expand(config.beam_size, + list(enc_input_extend_vocab.size())[ + 0]).contiguous() + # print("after: ", enc_input.size(), " ", enc_len.size(), " ", np.array(article_oovs).shape, " ", enc_input_extend_vocab.size()) + + enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_0, coverage_t_0 = \ + self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, [article_oovs]) + + # print("-----in decoder: sizeof enc_batch and enc_lens: ",enc_batch.size()," ",enc_lens.size()) + # print("------length infomation: ",enc_lens) + encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) + # print("******in decoder: sizeof encoder_outputs and encoder_feature: ", encoder_outputs.size(), " ", encoder_feature.size()) + s_t_0 = self.reduce_state(encoder_hidden) + + dec_h, dec_c = s_t_0 # 1 x 2*hidden_size + dec_h = dec_h.squeeze() + dec_c = dec_c.squeeze() + + # decoder batch preparation, it has beam_size example initially everything is repeated + beams = [Beam(tokens=[self.vocab.to_index(data.START_DECODING)], + log_probs=[0.0], + state=(dec_h[0], dec_c[0]), + context=c_t_0[0], + coverage=(coverage_t_0[0] if config.is_coverage else None)) for _ in range(config.beam_size)] + results = [] + steps = 0 + while steps < config.max_dec_steps and len(results) < config.beam_size: + latest_tokens = [h.latest_token for h in beams] + latest_tokens = [t if t < len(self.vocab) else self.vocab.to_index(data.UNKNOWN_TOKEN) \ + for t in latest_tokens] + y_t_1 = Variable(torch.LongTensor(latest_tokens)) + if use_cuda: + y_t_1 = y_t_1.cuda() + all_state_h = [] + all_state_c = [] + all_context = [] + + for h in beams: + state_h, state_c = h.state + all_state_h.append(state_h) + all_state_c.append(state_c) + all_context.append(h.context) + + s_t_1 = (torch.stack(all_state_h, 0).unsqueeze(0), torch.stack(all_state_c, 0).unsqueeze(0)) + c_t_1 = torch.stack(all_context, 0) + + coverage_t_1 = None + if config.is_coverage: + all_coverage = [] + for h in beams: + all_coverage.append(h.coverage) + coverage_t_1 = torch.stack(all_coverage, 0) + + # print("-"*20) + # print(article_oovs) + # print(extra_zeros) + + final_dist, s_t, c_t, attn_dist, p_gen, coverage_t = self.decoder(y_t_1, s_t_1, + encoder_outputs, encoder_feature, + enc_padding_mask, c_t_1, + extra_zeros, enc_batch_extend_vocab, + coverage_t_1, steps) + # print("final_dist: ", final_dist) + log_probs = torch.log(final_dist) + topk_log_probs, topk_ids = torch.topk(log_probs, config.beam_size * 2) + # print("topk_log_probs: ", topk_log_probs) + # print("topk_ids: ", topk_ids) + + dec_h, dec_c = s_t + dec_h = dec_h.squeeze() + dec_c = dec_c.squeeze() + + all_beams = [] + num_orig_beams = 1 if steps == 0 else len(beams) + for i in range(num_orig_beams): + h = beams[i] + state_i = (dec_h[i], dec_c[i]) + context_i = c_t[i] + coverage_i = (coverage_t[i] if config.is_coverage else None) + + for j in range(config.beam_size * 2): # for each of the top 2*beam_size hyps: + # print("log_probs.size: ",log_probs.size, "topk_ids.size: ", topk_ids.size()) + # print("i,j: ", i, ",", j, "topk_ids: ",topk_ids) + # print(topk_ids[i]) + # print(topk_ids[i,j]) + # print("topk_ids[i,j].item: ", topk_ids[i, j].item()) + new_beam = h.extend(token=topk_ids[i, j].item(), + log_prob=topk_log_probs[i, j].item(), + state=state_i, + context=context_i, + coverage=coverage_i) + all_beams.append(new_beam) + + beams = [] + for h in self.sort_beams(all_beams): + if h.latest_token == self.vocab.to_index(data.STOP_DECODING): + if steps >= config.min_dec_steps: + results.append(h) + else: + beams.append(h) + if len(beams) == config.beam_size or len(results) == config.beam_size: + break + + steps += 1 + + if len(results) == 0: + results = beams + + beams_sorted = self.sort_beams(results) + output_ids = [int(t) for t in beams_sorted[0].tokens[1:]] + + return output_ids + + def predict(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): + # batch should have only one example + # print("start predict",enc_input.size()) + output_ids = [] + batch_size, seq_len = list(enc_input.size()) + + enc_len_tmp = enc_len + enc_input_tmp = enc_input + article_oovs_tmp = article_oovs + enc_input_extend_vocab_tmp = enc_input_extend_vocab + for _num in range(batch_size): + enc_len = enc_len_tmp[_num] + enc_input = enc_input_tmp[_num] + article_oovs = article_oovs_tmp[_num] + enc_input_extend_vocab = enc_input_extend_vocab_tmp[_num] + pred = self.decode(enc_len, enc_input, article_oovs, enc_input_extend_vocab) + output_ids.append(pred) + + return {"prediction": output_ids} diff --git a/fastSum/PointerGen/model/mq b/fastSum/PointerGen/model/mq new file mode 100644 index 0000000..e69de29 diff --git a/fastSum/PointerGen/train.py b/fastSum/PointerGen/train.py new file mode 100644 index 0000000..1198aba --- /dev/null +++ b/fastSum/PointerGen/train.py @@ -0,0 +1,170 @@ +from data_util.config import Config +from data_util.data import prepare_dataInfo, PAD_TOKEN +from data_util.logging import logger +from model.loss import MyLoss +from model.model import Model +from fastNLP import BucketSampler +from fastNLP import Trainer +from fastNLP import Tester +from torch.optim import Adagrad +from model.metric import PyRougeMetric, FastRougeMetric +import os +import time +from data_util.utils import print_config, write_eval_results +from training_ptr_gen.callback import TrainCallback +import torch +import sys +import tensorflow as tf +import argparse + + +def initial_dir(mode, config, model_file_path=None): + if not os.path.exists(config.log_root): + os.mkdir(config.log_root) + + if mode == 'train': + _train_name = "" + if config.pointer_gen: + _train_name = _train_name + "_pointer_gen" + if config.is_coverage: + _train_name = _train_name + "_coverage" + + train_dir = os.path.join(config.log_root, 'train{}'.format(_train_name)) + if not os.path.exists(train_dir): + os.mkdir(train_dir) + + model_dir = os.path.join(train_dir, 'model') + if not os.path.exists(model_dir): + os.mkdir(model_dir) + + return train_dir, model_dir + else: + if model_file_path is None: + logger.error("error!, no model to load") + raise Exception("empty model file path!", model_file_path) + parent_path = os.path.dirname(model_file_path) + train_path = os.path.dirname(parent_path) + model_name = os.path.basename(model_file_path) + decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) + + if not os.path.exists(decode_path): + os.mkdir(decode_path) + + return decode_path + + +def set_up_data(mode, config): + datainfo = prepare_dataInfo(mode=mode, train_data_path=config.train_data_path, dev_data_path=config.eval_data_path, + vocab_size=config.vocab_size, config=config) + logger.info('-' * 10 + "set up data done!" + '-' * 10) + return datainfo + + +def run_train(config): + train_dir, model_dir = initial_dir('train', config) + config.train_path = train_dir + config.model_path = model_dir + print_config(config, train_dir) + datainfo = set_up_data('train', config) + train_sampler = BucketSampler(batch_size=config.batch_size, seq_len_field_name='enc_len') + criterion = MyLoss(config=config, padding_idx=datainfo.vocabs["train"].to_index(PAD_TOKEN)) + + model = Model(vocab=datainfo.vocabs["train"], config=config) + params = list(model.encoder.parameters()) + list(model.decoder.parameters()) + \ + list(model.reduce_state.parameters()) + initial_lr = config.lr_coverage if config.is_coverage else config.lr + optimizer = Adagrad(params, lr=initial_lr, initial_accumulator_value=config.adagrad_init_acc) + + train_loader = datainfo.datasets["train"] + valid_loader = datainfo.datasets["dev"] + summary_writer = tf.compat.v1.summary.FileWriter(train_dir) + trainer = Trainer(model=model, train_data=train_loader, optimizer=optimizer, loss=criterion, + batch_size=config.batch_size, check_code_level=-1, + n_epochs=config.n_epochs, print_every=100, dev_data=valid_loader, + metrics=FastRougeMetric(pred='prediction', art_oovs='article_oovs', + abstract_sentences='abstract_sentences', config=config, + vocab=datainfo.vocabs["train"]), + metric_key="rouge-l-f", validate_every=-1, save_path=model_dir, + callbacks=[TrainCallback(config, summary_writer, patience=10)], use_tqdm=False, + device=config.visible_gpu) + + logger.info("-" * 5 + "start training" + "-" * 5) + + traininfo = trainer.train(load_best_model=True) + logger.info(' | end of Train | time: {:5.2f}s | '.format(traininfo["seconds"])) + logger.info('[INFO] best eval model in epoch %d and iter %d', traininfo["best_epoch"], traininfo["best_step"]) + logger.info(traininfo["best_eval"]) + + bestmodel_save_path = os.path.join(config.model_path, + 'bestmodel.pkl') # this is where checkpoints of best models are saved + state = { + 'encoder_state_dict': model.encoder.state_dict(), + 'decoder_state_dict': model.decoder.state_dict(), + 'reduce_state_dict': model.reduce_state.state_dict() + } + torch.save(state, bestmodel_save_path) + # 不是作为形参传入到Trainer里面的么,怎么里面的model变化会影响到外面的? + logger.info('[INFO] Saving eval best model to %s', bestmodel_save_path) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Train script") + parser.add_argument("-m", dest="model_file_path", required=False, default=None, + help="Model file for retraining (default: None).") + parser.add_argument('-visible_gpu', default=-1, type=int, required=True) + parser.add_argument('-dataset_path', default="/remote-home/yrchen/Datasets") + parser.add_argument('-train_data_path', + default="CNNDM/finished_files_new1/CNNDM.train.json", required=True) + parser.add_argument('-eval_data_path', + default="CNNDM/finished_files_new1/CNNDM.val.json", required=True) + # parser.add_argument('-decode_data_path', + # default="CNNDM/finished_files_new1/CNNDM.test.json", required=True) + # parser.add_argument('-vocab_path', default='CNNDM/finished_files_new1/vocab.pkl') + parser.add_argument('-root', + default='/remote-home/yrchen/tasks/fastnlp-relevant/summarization/my-pnt-sum/log') + parser.add_argument('-log_root', default='CNNDM', required=True) + + parser.add_argument('-hidden_dim', default=256, type=int) + parser.add_argument('-emb_dim', default=128, type=int) + # parser.add_argument('-batch_size', default=8, type=int) + parser.add_argument('-batch_size', default=16, type=int) + parser.add_argument('-max_enc_steps', default=400, type=int) + parser.add_argument('-max_dec_steps', default=100, type=int) + parser.add_argument('-beam_size', default=4, type=int) + parser.add_argument('-min_dec_steps', default=35, type=int) + parser.add_argument('-vocab_size', default=50000, type=int) + + parser.add_argument('-lr', default=0.15, type=float) + parser.add_argument('-adagrad_init_acc', default=0.1, type=float) + parser.add_argument('-rand_unif_init_mag', default=0.02, type=float) + parser.add_argument('-trunc_norm_init_std', default=1e-4, type=float) + parser.add_argument('-max_grad_norm', default=2.0, type=float) + + parser.add_argument('-is_pointer_gen', dest='pointer_gen', nargs='?', const=True, default=False, + type=bool) + parser.add_argument('-is_coverage', nargs='?', const=True, default=False, type=bool) + parser.add_argument('-cov_loss_wt', default=1.0, type=float) + + parser.add_argument('-eps', default=1e-12, type=float) + # parser.add_argument('-max_iterations', default=500000, required=True, type=int) + parser.add_argument("-n_epochs", default=33, type=int, required=True) + + parser.add_argument('-lr_coverage', default=0.15, type=float) + args = parser.parse_args() + + args.train_data_path = os.path.join(args.dataset_path, args.train_data_path) + args.eval_data_path = os.path.join(args.dataset_path, args.eval_data_path) + # args.decode_data_path = os.path.join(args.dataset_path, args.decode_data_path) + # args.vocab_path = os.path.join(args.dataset_path, args.vocab_path) + + args.log_root = os.path.join(args.root, args.log_root) + + if args.visible_gpu != -1: + args.use_gpu = True + torch.cuda.set_device(args.visible_gpu) + print("using gpu: ", args.visible_gpu) + else: + args.use_gpu = False + + logger.info("------start mode train------") + run_train(args) diff --git a/fastSum/PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc b/fastSum/PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..46638c501d4ac03f6c1acd9ea6ee6568dd9af980 GIT binary patch literal 4375 zcmcIo&668P6`!6DX*Bv+?WdjKkjcjaO0X7^PzhTpii&Y4J7%F`6DS!o%&JGbqaDr2 zJ*~A@$W>I=^=PHtb!<4mX#4e>p4Z>M{=L`x zLA~x7c-H>#@x3oE8^%BB<@B+k{17SU5ZvG_F*-%gI!wQt9aHC4$JV*iagduyX;AKz z2X4n@WN#&vf!Fc0ZYR}2ty5#hj}7kd(qn^{qVloTsdIMQXqBI!Cu65&D)(BLB)ehv zKsBz1B00J(v*C3iGSOnHlw^B*5ozn)FzE(jl%{dI7lemJXcF|~zlMkm z8aM{M{+ZEZ+~W4*O2;Y&f+>`_``Ew~D%?X};#FQlUgmY)K<@G--b7yE%X|g7$5;6p z^6F=XZFFiF{)VdG5n-I3j{S*+KJRoL>K_l~CK8qAA3{ju*qE{tgBcSxF#>a9L0X)2 zTT5qRLNCek#6D)yJ+Q?4vck<{_9>g#_~LN`-C8?>p|$b5H&Xwj=;(ti6#PaiBOyjZ z`ECFHD3$?M(+|boC>o^FAB=M8??!&;?`B!jZdH|&kA{&@ZV<#NtOHf*W@#_pQ|>U7 zag=r=Wj_dGshSrTTQ&00U=WI<;DLzIr?TbI5Z2VP@;(WZQKa`xxu@f3Im*tXq$db@ zqCuicVg&+wS_y(~66Sdj{MGo^Z?;4<$YgYNKO00_N20qQrCT!05Av;En9DR7UKLRi z9fqmgD#j6yG2krS8XR36rt&HZw?@JLk9>nlh(b#E|_l}>+V zjk#>Rac)Q3rwi1j6{m-C+SF@EIZZ|yQ{%+I<^XBf97briWju&fGa6>y{UDd2kO7sn zm{>&(u|5|Y&{QK!gTiz-+KbbxD9fn}gN?78AI*8g`Irb`E|MP8AE8W)K927Oj^=?W zF5`_&O$|FLw`S$PCo3eYZ%-YX0kqOwE6+4{mRGp_=h7o4y?%9CgKfRv;10DQmt=F= zJTZ=0&)hIh%txkNo~}@96Z6C*62PjIcAgNaXxzqMV!W-AvNe2G0Je-rf|f}}0gt;< zt?=lnvSktRQ8zkkR>_7~)p!gL*197hqEu==7*_{qF$p#~{#vU*pNxhYc*^M|qkLaE z+CY_OeJk%w=jB=Fs&=+V@iGm+4x!8}S2m8xzOwsSoN8Drujo=2TX8DIB{Fqn1_)yS z;bGLW^ycH}(L~i!QGvb$RO=!rs@Q89cMzrgJ7_BhTN?&zFwbn5HgHQn7jHFo*&4s_ z6i!a-b~Tbvm57lTNrU7IC=w9CHc>JstOr;eGiFF@YEM|-nU+qB6E-cM82Rs{I|U1! z&{ucrO&Dnp-$Ok>;l%inaqo>^VcQ>B6RTerH?_^e+UhsZ+7h+KjQcl#VaR5|XmXiY zuuo7~r7;{6!>w=&aIwd4dH(F#9)=;|#$X?VZ+|a)tt%s2ts(Aihv$I#h0) z7v{?5p$wJP9gdWfjs_qWT3=Kkp9N^Ay-d7DCCxM(L>ya;NkrhwT-8McY7|i(?1_*o zTT2VXr7G7Sb|YXqO9kzehMUH1%Pz2E(_EBIO=5`D=Nv=4M^n`B`6Uzy==9AgTv*>O-~z4Ocj?TZ`&J<+ zJ>#2q{@W>oRt1qDmONF?NXAL7mbyti)C(4*nHU6mamDLoIE(c`_;6t=z5yfg zO^9dE@6y>N!)f~jrg;g%U{~-Pzx3=Sg7vutDx;EKpjV;5F)$9|#ndfnPi?&j&Sg*} zodi8qb7%Y}U_SBDke~H@4LAR{+i&wnC?uD$jkoW$-|9WeQP3)Bl!5 zylA!PMzV{Ps^(9>Pm<+PUuv)TB?r>0lu+rxuo{QBJ+J0Je^o_{+$ z1k3r_2rQWmeeH>SnfaUfctc0ux}3<+M<|s?y#0iZzxLj(%L@#On^d|0;4ONsk#$wp&VegFC!F$v8eC@7|+3)$+ z!qMKo^s$<|bgS^;1dD5hpQZkTOdLdF;VFH6i8ze&Otjl=kkkJUmv;*6T~c10$0;Hx zx}hxN@}q}2zx))?{66jW{}6mcxB9lCto#V>H+mS$Q;%GU<}UlWNSm8IMq{}TL3a=D zY$SJzGSg!<)BGx&%^PW%g3xuRRi`T)g#)<4c|m}aJW5Ef1;PDMm=s_1okzTY3gWvY z$U})6Bt9bX6A~YjAh)jSv-?;#N|GR0oEmr*iXsGESp>O9A4%V$T-K<$mb>mQyN+u^ zdsTmLHHwq{bE-h$uy~KeJ0$32ch>1jw{z=f?QSNb_UR=}kQ>kkUM*9Q6;J@srhfr| tkBTU3X;H4DgCbg@F)fB$X!?HTzF(}%4`}>(6T(I0jGyVUCgSIs^>5#aPg4K@ literal 0 HcmV?d00001 diff --git a/fastSum/PointerGen/training_ptr_gen/callback.py b/fastSum/PointerGen/training_ptr_gen/callback.py new file mode 100644 index 0000000..3317ecc --- /dev/null +++ b/fastSum/PointerGen/training_ptr_gen/callback.py @@ -0,0 +1,165 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# __author__="Danqing Wang" + +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== + +import os +import sys +import time +import numpy as np + +import torch +from fastNLP.core.callback import Callback, EarlyStopError + +from data_util.logging import logger +from data_util.utils import calc_running_avg_loss + + +class TrainCallback(Callback): + def __init__(self, config, summary_writer, patience=3, quit_all=True): + super().__init__() + self.config = config + self.patience = patience + self.wait = 0 + self.running_avg_loss = 0 + self.summary_writer = summary_writer + + if type(quit_all) != bool: + raise ValueError("In KeyBoardInterrupt, quit_all arguemnt must be a bool.") + self.quit_all = quit_all + + def on_epoch_begin(self): + self.epoch_start_time = time.time() + + def on_step_end(self): + if self.step % 100 == 0: + self.summary_writer.flush() + + if self.step % 1000 == 0: + state = { + 'iter': self.step, + 'encoder_state_dict': self.model.encoder.state_dict(), + 'decoder_state_dict': self.model.decoder.state_dict(), + 'reduce_state_dict': self.model.reduce_state.state_dict(), + 'optimizer': self.optimizer.state_dict(), + 'current_loss': self.running_avg_loss + } + # model_save_path = os.path.join(self.config.model_path, + # 'model_%d_%d' % (self.step, int(time.time()))) + # model_save_path = os.path.join(self.config.model_path, + # 'model_%d_%d_loss_%f' % (self.step, int(time.time()), self.running_avg_loss)) + model_save_path = os.path.join(self.config.model_path, + 'model_%d_loss_%f' % (self.step, self.running_avg_loss)) + #torch.save(state, model_save_path) + #self.model.cpu() + torch.save(self.model, model_save_path) + #if self.config.use_gpu: + # self.model.cuda() + + def on_backward_begin(self, loss): + """ + :param loss: [] + :return: + """ + print("|epoch: %d step: %d loss: %.4f|" % (self.epoch, self.step, loss.item())) + if not np.isfinite(loss.item()): + logger.error("train Loss is not finite. Stopping.") + logger.info(loss.item()) + for name, param in self.model.named_parameters(): + if param.requires_grad: + logger.info(name) + logger.info(param.grad.data.sum()) + raise Exception("train Loss is not finite. Stopping.") + + self.running_avg_loss = calc_running_avg_loss(loss.item(), self.running_avg_loss, self.summary_writer, self.step) + + def on_backward_end(self): + torch.nn.utils.clip_grad_norm_(self.model.encoder.parameters(), self.config.max_grad_norm) + torch.nn.utils.clip_grad_norm_(self.model.decoder.parameters(), self.config.max_grad_norm) + torch.nn.utils.clip_grad_norm_(self.model.reduce_state.parameters(), self.config.max_grad_norm) + + def on_epoch_end(self): + logger.info( + ' | end of epoch {:3d} | time: {:5.2f}s | '.format(self.epoch, (time.time() - self.epoch_start_time))) + + def on_valid_begin(self): + self.valid_start_time = time.time() + + def on_valid_end(self, eval_result, metric_key, optimizer, is_better_eval): + logger.info( + ' | end of valid {:3d} | time: {:5.2f}s | '.format(self.epoch, (time.time() - self.valid_start_time))) + + # early stop + if not is_better_eval: + if self.wait == self.patience: + + state = { + 'iter': self.step, + 'encoder_state_dict': self.model.encoder.state_dict(), + 'decoder_state_dict': self.model.decoder.state_dict(), + 'reduce_state_dict': self.model.reduce_state.state_dict(), + 'optimizer': self.optimizer.state_dict(), + 'current_loss': self.running_avg_loss + } + + model_save_path = os.path.join(self.config.model_path, + 'earlystop_step_%d.pkl' % self.step) + + # torch.save(state, model_save_path) + + #self.model.cpu() + torch.save(self.model, model_save_path) + #if self.config.use_gpu: + # self.model.cuda() + + logger.info('[INFO] Saving early stop model to %s', model_save_path) + raise EarlyStopError("Early stopping raised.") + else: + self.wait += 1 + else: + self.wait = 0 + + def on_exception(self, exception): + if isinstance(exception, KeyboardInterrupt): + logger.error("[Error] Caught keyboard interrupt on worker. Stopping supervisor...") + state = { + 'iter': self.step, + 'encoder_state_dict': self.model.encoder.state_dict(), + 'decoder_state_dict': self.model.decoder.state_dict(), + 'reduce_state_dict': self.model.reduce_state.state_dict(), + 'optimizer': self.optimizer.state_dict(), + 'current_loss': self.running_avg_loss + } + + model_save_path = os.path.join(self.config.model_path, + 'earlystop_step_%d.pkl' % self.step) + + # torch.save(state, model_save_path) + + #self.model.cpu() + torch.save(self.model, model_save_path) + #if self.config.use_gpu: + # self.model.cuda() + + logger.info('[INFO] Saving early stop model to %s', model_save_path) + + if self.quit_all is True: + sys.exit(0) # 直接退出程序 + else: + pass + else: + raise exception # 抛出陌生Error diff --git a/fastSum/PointerGen/training_ptr_gen/main.py b/fastSum/PointerGen/training_ptr_gen/main.py new file mode 100644 index 0000000..9b35eca --- /dev/null +++ b/fastSum/PointerGen/training_ptr_gen/main.py @@ -0,0 +1,126 @@ +from data_util.config import Config +from data_util.data import prepare_dataInfo, PAD_TOKEN +from data_util.logging import logger +from model.loss import MyLoss +from model.model import Model +from fastNLP import BucketSampler +from fastNLP import Trainer +from fastNLP import Tester +from torch.optim import Adagrad +from model.metric import PyRougeMetric, FastRougeMetric +import os +import time +from data_util.utils import print_config, write_eval_results +from training_ptr_gen.callback import TrainCallback +import torch +import sys +import tensorflow as tf + +config = Config() + + +def initial_dir(mode, model_file_path=None): + if mode == 'train': + train_dir = os.path.join(config.log_root, 'train_%d' % (int(time.time()))) + if not os.path.exists(train_dir): + os.mkdir(train_dir) + + model_dir = os.path.join(train_dir, 'model') + if not os.path.exists(model_dir): + os.mkdir(model_dir) + return train_dir, model_dir + + else: + if model_file_path is None: + logger.error("error!, no model to load") + raise Exception("empty model file path!", model_file_path) + parent_path = os.path.dirname(model_file_path) + train_path = os.path.dirname(parent_path) + model_name = os.path.basename(model_file_path) + decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) + + if not os.path.exists(decode_path): + os.mkdir(decode_path) + + return decode_path + + +def set_up_data(mode): + datainfo = prepare_dataInfo(mode, config.train_data_path, config.eval_data_path, config.decode_data_path, + config.vocab_path, config.vocab_size, config) + logger.info('-' * 10 + "set up data done!" + '-' * 10) + return datainfo + + +def run_train(): + train_dir, model_dir = initial_dir('train') + config.train_path = train_dir + config.model_path = model_dir + print_config(config, train_dir) + datainfo = set_up_data('train') + train_sampler = BucketSampler(batch_size=config.batch_size, seq_len_field_name='enc_len') + criterion = MyLoss(config=config, padding_idx=datainfo.vocabs["train"].to_index(PAD_TOKEN)) + + model = Model(vocab=datainfo.vocabs["train"]) + params = list(model.encoder.parameters()) + list(model.decoder.parameters()) + \ + list(model.reduce_state.parameters()) + initial_lr = config.lr_coverage if config.is_coverage else config.lr + optimizer = Adagrad(params, lr=initial_lr, initial_accumulator_value=config.adagrad_init_acc) + + train_loader = datainfo.datasets["train"] + valid_loader = datainfo.datasets["dev"] + summary_writer = tf.compat.v1.summary.FileWriter(train_dir) + trainer = Trainer(model=model, train_data=train_loader, optimizer=optimizer, loss=criterion, + batch_size=config.batch_size, check_code_level=-1, + n_epochs=config.n_epochs, print_every=100, dev_data=valid_loader, + metrics=FastRougeMetric(pred='prediction', art_oovs='article_oovs', + abstract_sentences='abstract_sentences', config=config, + vocab=datainfo.vocabs["train"]), + metric_key="rouge-l-f", validate_every=-1, save_path=model_dir, + callbacks=[TrainCallback(config, summary_writer, patience=5)], use_tqdm=False) + + logger.info("-" * 5 + "start training" + "-" * 5) + + traininfo = trainer.train(load_best_model=True) + logger.info(' | end of Train | time: {:5.2f}s | '.format(traininfo["seconds"])) + logger.info('[INFO] best eval model in epoch %d and iter %d', traininfo["best_epoch"], traininfo["best_step"]) + logger.info(traininfo["best_eval"]) + + bestmodel_save_path = os.path.join(config.model_path, + 'bestmodel.pkl') # this is where checkpoints of best models are saved + state = { + 'encoder_state_dict': model.encoder.state_dict(), + 'decoder_state_dict': model.decoder.state_dict(), + 'reduce_state_dict': model.reduce_state.state_dict() + } + torch.save(state, bestmodel_save_path) + # 不是作为形参传入到Trainer里面的么,怎么里面的model变化会影响到外面的? + logger.info('[INFO] Saving eval best model to %s', bestmodel_save_path) + + +def run_test(model_file_path): + decode_path = initial_dir('test', model_file_path) + datainfo = set_up_data('test') + model = Model(vocab=datainfo.vocabs["train"]) + tester = Tester(datainfo.datasets['test'], model=model, metrics=PyRougeMetric(pred='prediction', + art_oovs='article_oovs', + abstract_sentences='abstract_sentences', + config=config, + vocab=datainfo.vocabs["train"]), batch_size=1) + eval_results = tester.test() + write_eval_results(decode_path, eval_results) + + +if __name__ == '__main__': + torch.cuda.set_device(4) + mode = sys.argv[1] + if mode == 'train': + logger.info("------start mode train------") + run_train() + elif mode == 'test': + logger.info("------start mode test-------") + model_filename = sys.argv[2] + run_test(model_filename) + else: + logger.error("error: none of the mode is in train or test!") + raise Exception("wrong mode! neither train nor test!", mode) diff --git a/fastSum/__init__.py b/fastSum/__init__.py new file mode 100644 index 0000000..e69de29 -- Gitee From 436d8e0d0cb97f19a499b65b635bb1533bd44232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=A1=E7=84=B6?= <845465009@qq.com> Date: Thu, 17 Dec 2020 15:13:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Bert?= =?UTF-8?q?Sum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BertSum/callback.py | 129 ---------------------------- BertSum/dataloader.py | 157 ---------------------------------- BertSum/metrics.py | 178 --------------------------------------- BertSum/model.py | 51 ----------- BertSum/train_BertSum.py | 147 -------------------------------- BertSum/utils.py | 24 ------ 6 files changed, 686 deletions(-) delete mode 100644 BertSum/callback.py delete mode 100644 BertSum/dataloader.py delete mode 100644 BertSum/metrics.py delete mode 100644 BertSum/model.py delete mode 100644 BertSum/train_BertSum.py delete mode 100644 BertSum/utils.py diff --git a/BertSum/callback.py b/BertSum/callback.py deleted file mode 100644 index a1bb4f5..0000000 --- a/BertSum/callback.py +++ /dev/null @@ -1,129 +0,0 @@ -import os -import torch -import sys -from torch import nn - -from fastNLP.core.callback import Callback -from fastNLP.core.utils import _get_model_device - -class MyCallback(Callback): - def __init__(self, args): - super(MyCallback, self).__init__() - self.args = args - self.real_step = 0 - - def on_step_end(self): - if self.step % self.update_every == 0 and self.step > 0: - self.real_step += 1 - cur_lr = self.args.max_lr * 100 * min(self.real_step ** (-0.5), self.real_step * self.args.warmup_steps**(-1.5)) - for param_group in self.optimizer.param_groups: - param_group['lr'] = cur_lr - - if self.real_step % 1000 == 0: - self.pbar.write('Current learning rate is {:.8f}, real_step: {}'.format(cur_lr, self.real_step)) - - def on_epoch_end(self): - self.pbar.write('Epoch {} is done !!!'.format(self.epoch)) - -def _save_model(model, model_name, save_dir, only_param=False): - """ 存储不含有显卡信息的 state_dict 或 model - :param model: - :param model_name: - :param save_dir: 保存的 directory - :param only_param: - :return: - """ - model_path = os.path.join(save_dir, model_name) - if not os.path.isdir(save_dir): - os.makedirs(save_dir, exist_ok=True) - if isinstance(model, nn.DataParallel): - model = model.module - if only_param: - state_dict = model.state_dict() - for key in state_dict: - state_dict[key] = state_dict[key].cpu() - torch.save(state_dict, model_path) - else: - _model_device = _get_model_device(model) - model.cpu() - torch.save(model, model_path) - model.to(_model_device) - -class SaveModelCallback(Callback): - """ - 由于Trainer在训练过程中只会保存最佳的模型, 该 callback 可实现多种方式的结果存储。 - 会根据训练开始的时间戳在 save_dir 下建立文件夹,在再文件夹下存放多个模型 - -save_dir - -2019-07-03-15-06-36 - -epoch0step20{metric_key}{evaluate_performance}.pt # metric是给定的metric_key, evaluate_perfomance是性能 - -epoch1step40 - -2019-07-03-15-10-00 - -epoch:0step:20{metric_key}:{evaluate_performance}.pt # metric是给定的metric_key, evaluate_perfomance是性能 - :param str save_dir: 将模型存放在哪个目录下,会在该目录下创建以时间戳命名的目录,并存放模型 - :param int top: 保存dev表现top多少模型。-1为保存所有模型 - :param bool only_param: 是否只保存模型权重 - :param save_on_exception: 发生exception时,是否保存一份当时的模型 - """ - def __init__(self, save_dir, top=5, only_param=False, save_on_exception=False): - super().__init__() - - if not os.path.isdir(save_dir): - raise IsADirectoryError("{} is not a directory.".format(save_dir)) - self.save_dir = save_dir - if top < 0: - self.top = sys.maxsize - else: - self.top = top - self._ordered_save_models = [] # List[Tuple], Tuple[0]是metric, Tuple[1]是path。metric是依次变好的,所以从头删 - - self.only_param = only_param - self.save_on_exception = save_on_exception - - def on_train_begin(self): - self.save_dir = os.path.join(self.save_dir, self.trainer.start_time) - - def on_valid_end(self, eval_result, metric_key, optimizer, is_better_eval): - metric_value = list(eval_result.values())[0][metric_key] - self._save_this_model(metric_value) - - def _insert_into_ordered_save_models(self, pair): - # pair:(metric_value, model_name) - # 返回save的模型pair与删除的模型pair. pair中第一个元素是metric的值,第二个元素是模型的名称 - index = -1 - for _pair in self._ordered_save_models: - if _pair[0]>=pair[0] and self.trainer.increase_better: - break - if not self.trainer.increase_better and _pair[0]<=pair[0]: - break - index += 1 - save_pair = None - if len(self._ordered_save_models)=self.top and index!=-1): - save_pair = pair - self._ordered_save_models.insert(index+1, pair) - delete_pair = None - if len(self._ordered_save_models)>self.top: - delete_pair = self._ordered_save_models.pop(0) - return save_pair, delete_pair - - def _save_this_model(self, metric_value): - name = "epoch:{}_step:{}_{}:{:.6f}.pt".format(self.epoch, self.step, self.trainer.metric_key, metric_value) - save_pair, delete_pair = self._insert_into_ordered_save_models((metric_value, name)) - if save_pair: - try: - _save_model(self.model, model_name=name, save_dir=self.save_dir, only_param=self.only_param) - except Exception as e: - print(f"The following exception:{e} happens when saves model to {self.save_dir}.") - if delete_pair: - try: - delete_model_path = os.path.join(self.save_dir, delete_pair[1]) - if os.path.exists(delete_model_path): - os.remove(delete_model_path) - except Exception as e: - print(f"Fail to delete model {name} at {self.save_dir} caused by exception:{e}.") - - def on_exception(self, exception): - if self.save_on_exception: - name = "epoch:{}_step:{}_Exception:{}.pt".format(self.epoch, self.step, exception.__class__.__name__) - _save_model(self.model, model_name=name, save_dir=self.save_dir, only_param=self.only_param) - - diff --git a/BertSum/dataloader.py b/BertSum/dataloader.py deleted file mode 100644 index 6af797e..0000000 --- a/BertSum/dataloader.py +++ /dev/null @@ -1,157 +0,0 @@ -from time import time -from datetime import timedelta - -from fastNLP.io.dataset_loader import JsonLoader -from fastNLP.modules.encoder._bert import BertTokenizer -from fastNLP.io.data_bundle import DataBundle -from fastNLP.core.const import Const - -class BertData(JsonLoader): - - def __init__(self, max_nsents=60, max_ntokens=100, max_len=512): - - fields = {'article': 'article', - 'label': 'label'} - super(BertData, self).__init__(fields=fields) - - self.max_nsents = max_nsents - self.max_ntokens = max_ntokens - self.max_len = max_len - - self.tokenizer = BertTokenizer.from_pretrained('/path/to/uncased_L-12_H-768_A-12') - self.cls_id = self.tokenizer.vocab['[CLS]'] - self.sep_id = self.tokenizer.vocab['[SEP]'] - self.pad_id = self.tokenizer.vocab['[PAD]'] - - def _load(self, paths): - dataset = super(BertData, self)._load(paths) - return dataset - - def process(self, paths): - - def truncate_articles(instance, max_nsents=self.max_nsents, max_ntokens=self.max_ntokens): - article = [' '.join(sent.lower().split()[:max_ntokens]) for sent in instance['article']] - return article[:max_nsents] - - def truncate_labels(instance): - label = list(filter(lambda x: x < len(instance['article']), instance['label'])) - return label - - def bert_tokenize(instance, tokenizer, max_len, pad_value): - article = instance['article'] - article = ' [SEP] [CLS] '.join(article) - word_pieces = tokenizer.tokenize(article)[:(max_len - 2)] - word_pieces = ['[CLS]'] + word_pieces + ['[SEP]'] - token_ids = tokenizer.convert_tokens_to_ids(word_pieces) - while len(token_ids) < max_len: - token_ids.append(pad_value) - assert len(token_ids) == max_len - return token_ids - - def get_seg_id(instance, max_len, sep_id): - _segs = [-1] + [i for i, idx in enumerate(instance['article']) if idx == sep_id] - segs = [_segs[i] - _segs[i - 1] for i in range(1, len(_segs))] - segment_id = [] - for i, length in enumerate(segs): - if i % 2 == 0: - segment_id += length * [0] - else: - segment_id += length * [1] - while len(segment_id) < max_len: - segment_id.append(0) - return segment_id - - def get_cls_id(instance, cls_id): - classification_id = [i for i, idx in enumerate(instance['article']) if idx == cls_id] - return classification_id - - def get_labels(instance): - labels = [0] * len(instance['cls_id']) - label_idx = list(filter(lambda x: x < len(instance['cls_id']), instance['label'])) - for idx in label_idx: - labels[idx] = 1 - return labels - - datasets = {} - for name in paths: - datasets[name] = self._load(paths[name]) - - # remove empty samples - datasets[name].drop(lambda ins: len(ins['article']) == 0 or len(ins['label']) == 0) - - # truncate articles - datasets[name].apply(lambda ins: truncate_articles(ins, self.max_nsents, self.max_ntokens), new_field_name='article') - - # truncate labels - datasets[name].apply(truncate_labels, new_field_name='label') - - # tokenize and convert tokens to id - datasets[name].apply(lambda ins: bert_tokenize(ins, self.tokenizer, self.max_len, self.pad_id), new_field_name='article') - - # get segment id - datasets[name].apply(lambda ins: get_seg_id(ins, self.max_len, self.sep_id), new_field_name='segment_id') - - # get classification id - datasets[name].apply(lambda ins: get_cls_id(ins, self.cls_id), new_field_name='cls_id') - - # get label - datasets[name].apply(get_labels, new_field_name='label') - - # rename filed - datasets[name].rename_field('article', Const.INPUTS(0)) - datasets[name].rename_field('segment_id', Const.INPUTS(1)) - datasets[name].rename_field('cls_id', Const.INPUTS(2)) - datasets[name].rename_field('lbael', Const.TARGET) - - # set input and target - datasets[name].set_input(Const.INPUTS(0), Const.INPUTS(1), Const.INPUTS(2)) - datasets[name].set_target(Const.TARGET) - - # set paddding value - datasets[name].set_pad_val('article', 0) - - return DataBundle(datasets=datasets) - - -class BertSumLoader(JsonLoader): - - def __init__(self): - fields = {'article': 'article', - 'segment_id': 'segment_id', - 'cls_id': 'cls_id', - 'label': Const.TARGET - } - super(BertSumLoader, self).__init__(fields=fields) - - def _load(self, paths): - dataset = super(BertSumLoader, self)._load(paths) - return dataset - - def process(self, paths): - - def get_seq_len(instance): - return len(instance['article']) - - print('Start loading datasets !!!') - start = time() - - # load datasets - datasets = {} - for name in paths: - datasets[name] = self._load(paths[name]) - - datasets[name].apply(get_seq_len, new_field_name='seq_len') - - # set input and target - datasets[name].set_input('article', 'segment_id', 'cls_id') - datasets[name].set_target(Const.TARGET) - - # set padding value - datasets[name].set_pad_val('article', 0) - datasets[name].set_pad_val('segment_id', 0) - datasets[name].set_pad_val('cls_id', -1) - datasets[name].set_pad_val(Const.TARGET, 0) - - print('Finished in {}'.format(timedelta(seconds=time()-start))) - - return DataBundle(datasets=datasets) diff --git a/BertSum/metrics.py b/BertSum/metrics.py deleted file mode 100644 index 228f678..0000000 --- a/BertSum/metrics.py +++ /dev/null @@ -1,178 +0,0 @@ -import numpy as np -import json -from os.path import join -import torch -import logging -import tempfile -import subprocess as sp -from datetime import timedelta -from time import time - -from pyrouge import Rouge155 -from pyrouge.utils import log - -from fastNLP.core.losses import LossBase -from fastNLP.core.metrics import MetricBase - -_ROUGE_PATH = '/path/to/RELEASE-1.5.5' - -class MyBCELoss(LossBase): - - def __init__(self, pred=None, target=None, mask=None): - super(MyBCELoss, self).__init__() - self._init_param_map(pred=pred, target=target, mask=mask) - self.loss_func = torch.nn.BCELoss(reduction='none') - - def get_loss(self, pred, target, mask): - loss = self.loss_func(pred, target.float()) - loss = (loss * mask.float()).sum() - return loss - -class LossMetric(MetricBase): - def __init__(self, pred=None, target=None, mask=None): - super(LossMetric, self).__init__() - self._init_param_map(pred=pred, target=target, mask=mask) - self.loss_func = torch.nn.BCELoss(reduction='none') - self.avg_loss = 0.0 - self.nsamples = 0 - - def evaluate(self, pred, target, mask): - batch_size = pred.size(0) - loss = self.loss_func(pred, target.float()) - loss = (loss * mask.float()).sum() - self.avg_loss += loss - self.nsamples += batch_size - - def get_metric(self, reset=True): - self.avg_loss = self.avg_loss / self.nsamples - eval_result = {'loss': self.avg_loss} - if reset: - self.avg_loss = 0 - self.nsamples = 0 - return eval_result - -class RougeMetric(MetricBase): - def __init__(self, data_path, dec_path, ref_path, n_total, n_ext=3, ngram_block=3, pred=None, target=None, mask=None): - super(RougeMetric, self).__init__() - self._init_param_map(pred=pred, target=target, mask=mask) - self.data_path = data_path - self.dec_path = dec_path - self.ref_path = ref_path - self.n_total = n_total - self.n_ext = n_ext - self.ngram_block = ngram_block - - self.cur_idx = 0 - self.ext = [] - self.start = time() - - @staticmethod - def eval_rouge(dec_dir, ref_dir): - assert _ROUGE_PATH is not None - log.get_global_console_logger().setLevel(logging.WARNING) - dec_pattern = '(\d+).dec' - ref_pattern = '#ID#.ref' - cmd = '-c 95 -r 1000 -n 2 -m' - with tempfile.TemporaryDirectory() as tmp_dir: - Rouge155.convert_summaries_to_rouge_format( - dec_dir, join(tmp_dir, 'dec')) - Rouge155.convert_summaries_to_rouge_format( - ref_dir, join(tmp_dir, 'ref')) - Rouge155.write_config_static( - join(tmp_dir, 'dec'), dec_pattern, - join(tmp_dir, 'ref'), ref_pattern, - join(tmp_dir, 'settings.xml'), system_id=1 - ) - cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') - + ' -e {} '.format(join(_ROUGE_PATH, 'data')) - + cmd - + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) - output = sp.check_output(cmd.split(' '), universal_newlines=True) - R_1 = float(output.split('\n')[3].split(' ')[3]) - R_2 = float(output.split('\n')[7].split(' ')[3]) - R_L = float(output.split('\n')[11].split(' ')[3]) - print(output) - return R_1, R_2, R_L - - def evaluate(self, pred, target, mask): - pred = pred + mask.float() - pred = pred.cpu().data.numpy() - ext_ids = np.argsort(-pred, 1) - for sent_id in ext_ids: - self.ext.append(sent_id) - self.cur_idx += 1 - print('{}/{} ({:.2f}%) decoded in {} seconds\r'.format( - self.cur_idx, self.n_total, self.cur_idx/self.n_total*100, timedelta(seconds=int(time()-self.start)) - ), end='') - - def get_metric(self, use_ngram_block=True, reset=True): - - def check_n_gram(sentence, n, dic): - tokens = sentence.split(' ') - s_len = len(tokens) - for i in range(s_len): - if i + n > s_len: - break - if ' '.join(tokens[i: i + n]) in dic: - return False - return True # no n_gram overlap - - # load original data - data = [] - with open(self.data_path) as f: - for line in f: - cur_data = json.loads(line) - if 'text' in cur_data: - new_data = {} - new_data['article'] = cur_data['text'] - new_data['abstract'] = cur_data['summary'] - data.append(new_data) - else: - data.append(cur_data) - - # write decode sentences and references - if use_ngram_block == True: - print('\nStart {}-gram blocking !!!'.format(self.ngram_block)) - for i, ext_ids in enumerate(self.ext): - dec, ref = [], [] - if use_ngram_block == False: - n_sent = min(len(data[i]['article']), self.n_ext) - for j in range(n_sent): - idx = ext_ids[j] - dec.append(data[i]['article'][idx]) - else: - n_sent = len(ext_ids) - dic = {} - for j in range(n_sent): - sent = data[i]['article'][ext_ids[j]] - if check_n_gram(sent, self.ngram_block, dic) == True: - dec.append(sent) - # update dic - tokens = sent.split(' ') - s_len = len(tokens) - for k in range(s_len): - if k + self.ngram_block > s_len: - break - dic[' '.join(tokens[k: k + self.ngram_block])] = 1 - if len(dec) >= self.n_ext: - break - - for sent in data[i]['abstract']: - ref.append(sent) - - with open(join(self.dec_path, '{}.dec'.format(i)), 'w') as f: - for sent in dec: - print(sent, file=f) - with open(join(self.ref_path, '{}.ref'.format(i)), 'w') as f: - for sent in ref: - print(sent, file=f) - - print('\nStart evaluating ROUGE score !!!') - R_1, R_2, R_L = RougeMetric.eval_rouge(self.dec_path, self.ref_path) - eval_result = {'ROUGE-1': R_1, 'ROUGE-2': R_2, 'ROUGE-L':R_L} - - if reset == True: - self.cur_idx = 0 - self.ext = [] - self.start = time() - return eval_result diff --git a/BertSum/model.py b/BertSum/model.py deleted file mode 100644 index 34a0549..0000000 --- a/BertSum/model.py +++ /dev/null @@ -1,51 +0,0 @@ -import torch -from torch import nn -from torch.nn import init - -from fastNLP.modules.encoder.bert import BertModel - - -class Classifier(nn.Module): - def __init__(self, hidden_size): - super(Classifier, self).__init__() - self.linear = nn.Linear(hidden_size, 1) - self.sigmoid = nn.Sigmoid() - - def forward(self, inputs, mask_cls): - h = self.linear(inputs).squeeze(-1) # [batch_size, seq_len] - sent_scores = self.sigmoid(h) * mask_cls.float() - return sent_scores - - -class BertSum(nn.Module): - - def __init__(self, hidden_size=768): - super(BertSum, self).__init__() - - self.hidden_size = hidden_size - - self.encoder = BertModel.from_pretrained('/path/to/uncased_L-12_H-768_A-12') - self.decoder = Classifier(self.hidden_size) - - def forward(self, article, segment_id, cls_id): - - # print(article.device) - # print(segment_id.device) - # print(cls_id.device) - - input_mask = 1 - (article == 0).long() - mask_cls = 1 - (cls_id == -1).long() - assert input_mask.size() == article.size() - assert mask_cls.size() == cls_id.size() - - bert_out = self.encoder(article, token_type_ids=segment_id, attention_mask=input_mask) - bert_out = bert_out[0][-1] # last layer - - sent_emb = bert_out[torch.arange(bert_out.size(0)).unsqueeze(1), cls_id] - sent_emb = sent_emb * mask_cls.unsqueeze(-1).float() - assert sent_emb.size() == (article.size(0), cls_id.size(1), self.hidden_size) # [batch_size, seq_len, hidden_size] - - sent_scores = self.decoder(sent_emb, mask_cls) # [batch_size, seq_len] - assert sent_scores.size() == (article.size(0), cls_id.size(1)) - - return {'pred': sent_scores, 'mask': mask_cls} diff --git a/BertSum/train_BertSum.py b/BertSum/train_BertSum.py deleted file mode 100644 index d34fa0b..0000000 --- a/BertSum/train_BertSum.py +++ /dev/null @@ -1,147 +0,0 @@ -import sys -import argparse -import os -import json -import torch -from time import time -from datetime import timedelta -from os.path import join, exists -from torch.optim import Adam - -from utils import get_data_path, get_rouge_path - -from dataloader import BertSumLoader -from model import BertSum -from fastNLP.core.optimizer import AdamW -from metrics import MyBCELoss, LossMetric, RougeMetric -from fastNLP.core.sampler import BucketSampler -from callback import MyCallback, SaveModelCallback -from fastNLP.core.trainer import Trainer -from fastNLP.core.tester import Tester - - -def configure_training(args): - devices = [int(gpu) for gpu in args.gpus.split(',')] - params = {} - params['label_type'] = args.label_type - params['batch_size'] = args.batch_size - params['accum_count'] = args.accum_count - params['max_lr'] = args.max_lr - params['warmup_steps'] = args.warmup_steps - params['n_epochs'] = args.n_epochs - params['valid_steps'] = args.valid_steps - return devices, params - -def train_model(args): - - # check if the data_path and save_path exists - data_paths = get_data_path(args.mode, args.label_type) - for name in data_paths: - assert exists(data_paths[name]) - if not exists(args.save_path): - os.makedirs(args.save_path) - - # load summarization datasets - datasets = BertSumLoader().process(data_paths) - print('Information of dataset is:') - print(datasets) - train_set = datasets.datasets['train'] - valid_set = datasets.datasets['val'] - - # configure training - devices, train_params = configure_training(args) - with open(join(args.save_path, 'params.json'), 'w') as f: - json.dump(train_params, f, indent=4) - print('Devices is:') - print(devices) - - # configure model - model = BertSum() - optimizer = Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0) - callbacks = [MyCallback(args), SaveModelCallback(args.save_path)] - criterion = MyBCELoss() - val_metric = [LossMetric()] - # sampler = BucketSampler(num_buckets=32, batch_size=args.batch_size) - trainer = Trainer(train_data=train_set, model=model, optimizer=optimizer, - loss=criterion, batch_size=args.batch_size, # sampler=sampler, - update_every=args.accum_count, n_epochs=args.n_epochs, - print_every=100, dev_data=valid_set, metrics=val_metric, - metric_key='-loss', validate_every=args.valid_steps, - save_path=args.save_path, device=devices, callbacks=callbacks) - - print('Start training with the following hyper-parameters:') - print(train_params) - trainer.train() - -def test_model(args): - - models = os.listdir(args.save_path) - - # load dataset - data_paths = get_data_path(args.mode, args.label_type) - datasets = BertSumLoader().process(data_paths) - print('Information of dataset is:') - print(datasets) - test_set = datasets.datasets['test'] - - # only need 1 gpu for testing - device = int(args.gpus) - - args.batch_size = 1 - - for cur_model in models: - - print('Current model is {}'.format(cur_model)) - - # load model - model = torch.load(join(args.save_path, cur_model)) - - # configure testing - original_path, dec_path, ref_path = get_rouge_path(args.label_type) - test_metric = RougeMetric(data_path=original_path, dec_path=dec_path, - ref_path=ref_path, n_total = len(test_set)) - tester = Tester(data=test_set, model=model, metrics=[test_metric], - batch_size=args.batch_size, device=device) - tester.test() - - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='training/testing of BertSum(liu et al. 2019)' - ) - parser.add_argument('--mode', required=True, - help='training or testing of BertSum', type=str) - - parser.add_argument('--label_type', default='greedy', - help='greedy/limit', type=str) - parser.add_argument('--save_path', required=True, - help='root of the model', type=str) - # example for gpus input: '0,1,2,3' - parser.add_argument('--gpus', required=True, - help='available gpus for training(separated by commas)', type=str) - - parser.add_argument('--batch_size', default=18, - help='the training batch size', type=int) - parser.add_argument('--accum_count', default=2, - help='number of updates steps to accumulate before performing a backward/update pass.', type=int) - parser.add_argument('--max_lr', default=2e-5, - help='max learning rate for warm up', type=float) - parser.add_argument('--warmup_steps', default=10000, - help='warm up steps for training', type=int) - parser.add_argument('--n_epochs', default=10, - help='total number of training epochs', type=int) - parser.add_argument('--valid_steps', default=1000, - help='number of update steps for checkpoint and validation', type=int) - - args = parser.parse_args() - - if args.mode == 'train': - print('Training process of BertSum !!!') - train_model(args) - else: - print('Testing process of BertSum !!!') - test_model(args) - - - - diff --git a/BertSum/utils.py b/BertSum/utils.py deleted file mode 100644 index 2ba848b..0000000 --- a/BertSum/utils.py +++ /dev/null @@ -1,24 +0,0 @@ -import os -from os.path import exists - -def get_data_path(mode, label_type): - paths = {} - if mode == 'train': - paths['train'] = 'data/' + label_type + '/bert.train.jsonl' - paths['val'] = 'data/' + label_type + '/bert.val.jsonl' - else: - paths['test'] = 'data/' + label_type + '/bert.test.jsonl' - return paths - -def get_rouge_path(label_type): - if label_type == 'others': - data_path = 'data/' + label_type + '/bert.test.jsonl' - else: - data_path = 'data/' + label_type + '/test.jsonl' - dec_path = 'dec' - ref_path = 'ref' - if not exists(ref_path): - os.makedirs(ref_path) - if not exists(dec_path): - os.makedirs(dec_path) - return data_path, dec_path, ref_path -- Gitee From 1988968e1e4635c76d02125f54a61de159a7720b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=A1=E7=84=B6?= <845465009@qq.com> Date: Thu, 17 Dec 2020 15:13:35 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Matc?= =?UTF-8?q?hSum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MatchSum/README.md | 83 - MatchSum/callback.py | 32 - MatchSum/dataloader.py | 92 - MatchSum/metrics.py | 209 - MatchSum/model.py | 57 - MatchSum/preprocess/get_candidate.py | 223 - MatchSum/preprocess/test_cnndm.jsonl | 11489 ------------------------- MatchSum/train_matching.py | 153 - MatchSum/utils.py | 32 - 9 files changed, 12370 deletions(-) delete mode 100644 MatchSum/README.md delete mode 100644 MatchSum/callback.py delete mode 100644 MatchSum/dataloader.py delete mode 100644 MatchSum/metrics.py delete mode 100644 MatchSum/model.py delete mode 100644 MatchSum/preprocess/get_candidate.py delete mode 100644 MatchSum/preprocess/test_cnndm.jsonl delete mode 100644 MatchSum/train_matching.py delete mode 100644 MatchSum/utils.py diff --git a/MatchSum/README.md b/MatchSum/README.md deleted file mode 100644 index b1d06fe..0000000 --- a/MatchSum/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# MatchSum -Codes and readme are from *[maszhongming/MatchSum](https://github.com/maszhongming/MatchSum)*, Thanks for code provider [Ming Zhong](https://github.com/maszhongming) -
-Code for ACL 2020 paper: *[Extractive Summarization as Text Matching](https://arxiv.org/abs/2004.08795)* - - -## Dependencies -- Python 3.7 -- [PyTorch](https://github.com/pytorch/pytorch) 1.4.0 -- [fastNLP](https://github.com/fastnlp/fastNLP) 0.5.0 -- [pyrouge](https://github.com/bheinzerling/pyrouge) 0.1.3 - - You should fill your ROUGE path in metrics.py line 20 before running our code. -- [rouge](https://github.com/pltrdy/rouge) 1.0.0 - - Used in the validation phase. -- [transformers](https://github.com/huggingface/transformers) 2.5.1 - - -All code only supports running on Linux. - -## Data - -We have already processed CNN/DailyMail dataset, you can download it through [this link](https://drive.google.com/open?id=1FG4oiQ6rknIeL2WLtXD0GWyh6pBH9-hX), unzip and move it to `./data`. It contains two versions (BERT/RoBERTa) of the dataset, a total of six files. - -In addition, we have released five other processed datasets (WikiHow, PubMed, XSum, MultiNews, Reddit), which you can find [here](https://drive.google.com/file/d/1PnFCwqSzAUr78uEcA_Q15yupZ5bTAQIb/view?usp=sharing). - -## Train - -We use eight Tesla-V100-16G GPUs to train our model, the training time is about 30 hours. If you do not have enough video memory, you can reduce the *batch_size* or *candidate_num* in `train_matching.py`, or you can adjust *max_len* in `dataloader.py`. - -You can choose BERT or RoBERTa as the encoder of **MatchSum**, for example, to train a RoBERTa model, you can run the following command: - -``` -CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python train_matching.py --mode=train --encoder=roberta --save_path=./roberta --gpus=0,1,2,3,4,5,6,7 -``` - -## Test - -After completing the training process, several best checkpoints are stored in a folder named after the training start time, for example, `./roberta/2020-04-12-09-24-51`. You can run the following command to get the results on test set (only one GPU is required for testing): - -``` -CUDA_VISIBLE_DEVICES=0 python train_matching.py --mode=test --encoder=roberta --save_path=./roberta/2020-04-12-09-24-51/ --gpus=0 -``` -The ROUGE score will be printed on the screen, and the output of the model will be stored in the folder `./roberta/result`. - -## Results on CNN/DailyMail -Test set (the average of three runs) - -| Model | R-1 | R-2 | R-L | -| :------ | :------: | :------: | :------: | -| MatchSum (BERT-base) | 44.22 | 20.62 | 40.38 | -| MatchSum (RoBERTa-base) | 44.41 | 20.86 | 40.55 | - -## Generated Summaries -The summaries generated by our models on the CNN/DM dataset can be found [here](https://drive.google.com/open?id=11_eSZkuwtK4bJa_L3z2eblz4iwRXOLzU). In the version we released, the result of **MatchSum(BERT)** is 44.26/20.58/40.40 (R-1/R-2/R-L), and the result of **MatchSum(RoBERTa)** is 44.45/20.88/40.60. - -The summaries generated on other datasets can be found [here](https://drive.google.com/open?id=1iNY1hT_4ZFJZVeyyP1eeoVY14Ej7l9im). - -## Pretrained Model -Two versions of the pre-trained model on CNN/DM are available [here](https://drive.google.com/file/d/1PxMHpDSvP1OJfj1et4ToklevQzcPr-HQ/view?usp=sharing). You can use them through `torch.load`. For example, - -``` -model = torch.load('MatchSum_cnndm_bert.ckpt') -``` - -Besides, the pre-trained models on other datasets can be found [here](https://drive.google.com/open?id=1EzRE7aEsyBKCeXJHKSunaR89QoPhdij5). - -## Process Your Own Data - -If you want to process your own data and get candidate summaries for each document, first you need to convert your dataset to the same *jsonl* format as ours, and make sure to include *text* and *summary* fields. Second, you should use BertExt or other methods to select some important sentences from each document and get an *index.jsonl* file (we provide an example in `./preprocess/test_cnndm.jsonl`). - -Then you can run the following command: - -``` -python get_candidate.py --tokenizer=bert --data_path=/path/to/your_original_data.jsonl --index_path=/path/to/your_index.jsonl --write_path=/path/to/store/your_processed_data.jsonl -``` - -Please fill your ROUGE path in `preprocess/get_candidate.py` line 22 before running this command. It is worth noting that you need to adjust the number of candidate summaries and the number of sentences in the candidate summaries according to your dataset. For details, see line 89-97 in `preprocess/get_candidate.py`. - -After processing the dataset, and before using our code to train your own model, please adjust *candidate_num* in `train_matching.py` and *max_len* in `dataloader.py` according to the number and the length of the candidate summaries in your dataset. - -## Note - -The code and data released here are used for the matching model. Before the matching stage, we use BertExt to prune meaningless candidate summaries, the implementation of BertExt can refer to [PreSumm](https://github.com/nlpyang/PreSumm). diff --git a/MatchSum/callback.py b/MatchSum/callback.py deleted file mode 100644 index afe66a2..0000000 --- a/MatchSum/callback.py +++ /dev/null @@ -1,32 +0,0 @@ -import os -import torch -import sys -from torch import nn -from os.path import join - -from fastNLP.core.callback import Callback - -class MyCallback(Callback): - def __init__(self, args): - super(MyCallback, self).__init__() - self.args = args - self.real_step = 0 - - def on_valid_begin(self): - with open(join(self._trainer.save_path, 'train_info.txt'), 'a') as f: - print('Current step is: {}'.format(self.step), file=f) - - def on_step_end(self): - # warm up - if self.step % self.update_every == 0 and self.step > 0: - self.real_step += 1 - cur_lr = self.args.max_lr * 100 * min(self.real_step ** (-0.5), self.real_step * self.args.warmup_steps**(-1.5)) - for param_group in self.optimizer.param_groups: - param_group['lr'] = cur_lr - - if self.real_step % 1000 == 0: - self.pbar.write('Current learning rate is {:.8f}, real_step: {}'.format(cur_lr, self.real_step)) - - def on_epoch_end(self): - self.pbar.write('Epoch {} is done !!!'.format(self.epoch)) - diff --git a/MatchSum/dataloader.py b/MatchSum/dataloader.py deleted file mode 100644 index 48d9340..0000000 --- a/MatchSum/dataloader.py +++ /dev/null @@ -1,92 +0,0 @@ -from time import time -from datetime import timedelta - -from fastNLP.io.loader import JsonLoader -from fastNLP.io.data_bundle import DataBundle -from fastNLP.io.pipe.pipe import Pipe -from fastNLP.core.const import Const - -class MatchSumLoader(JsonLoader): - - def __init__(self, candidate_num, encoder, max_len=180): - fields = {'text_id': 'text_id', - 'candidate_id': 'candidate_id', - 'summary_id': 'summary_id' - } - super(MatchSumLoader, self).__init__(fields=fields) - - self.candidate_num = candidate_num - self.max_len = max_len - self.encoder = encoder - - if encoder == 'bert': - self.sep_id = [102] # '[SEP]' (BERT) - else: - self.sep_id = [2] # '' (RoBERTa) - - def _load(self, path): - dataset = super(MatchSumLoader, self)._load(path) - return dataset - - def load(self, paths): - - def get_seq_len(instance): - return len(instance['text_id']) - - def sample(instance, candidate_num): - candidate_id = instance['candidate_id'][:candidate_num] - return candidate_id - - def truncate_candidate_id(instance, max_len): - candidate_id = [] - for i in range(len(instance['candidate_id'])): - if len(instance['candidate_id'][i]) > max_len: - cur_id = instance['candidate_id'][i][:(max_len - 1)] - cur_id += self.sep_id - else: - cur_id = instance['candidate_id'][i] - candidate_id.append(cur_id) - return candidate_id - - print('Start loading datasets !!!') - start = time() - - # load datasets - datasets = {} - for name in paths: - datasets[name] = self._load(paths[name]) - - if name == 'train': - datasets[name].apply(lambda ins: truncate_candidate_id(ins, self.max_len), new_field_name='candidate_id') - - # set input and target - datasets[name].set_input('text_id', 'candidate_id', 'summary_id') - - # set padding value - if self.encoder == 'bert': - pad_id = 0 - else: - pad_id = 1 # for RoBERTa - datasets[name].set_pad_val('text_id', pad_id) - datasets[name].set_pad_val('candidate_id', pad_id) - datasets[name].set_pad_val('summary_id', pad_id) - - print('Finished in {}'.format(timedelta(seconds=time()-start))) - - return DataBundle(datasets=datasets) - -class MatchSumPipe(Pipe): - - def __init__(self, candidate_num, encoder): - super(MatchSumPipe, self).__init__() - self.candidate_num = candidate_num - self.encoder = encoder - - def process(self, data_bundle): - - return data_bundle - - def process_from_file(self, paths): - data_bundle = MatchSumLoader(self.candidate_num, self.encoder).load(paths) - return self.process(data_bundle) - diff --git a/MatchSum/metrics.py b/MatchSum/metrics.py deleted file mode 100644 index fb0d9d2..0000000 --- a/MatchSum/metrics.py +++ /dev/null @@ -1,209 +0,0 @@ -import numpy as np - -import json -from os.path import join -import torch -import logging -import tempfile -import subprocess as sp -from datetime import timedelta -from time import time -from itertools import combinations - -from pyrouge import Rouge155 -from pyrouge.utils import log -from rouge import Rouge - -from fastNLP.core.losses import LossBase -from fastNLP.core.metrics import MetricBase - -_ROUGE_PATH = '/path/to/RELEASE-1.5.5' - -class MarginRankingLoss(LossBase): - - def __init__(self, margin, score=None, summary_score=None): - super(MarginRankingLoss, self).__init__() - self._init_param_map(score=score, summary_score=summary_score) - self.margin = margin - self.loss_func = torch.nn.MarginRankingLoss(margin) - - def get_loss(self, score, summary_score): - - # equivalent to initializing TotalLoss to 0 - # here is to avoid that some special samples will not go into the following for loop - ones = torch.ones(score.size()).cuda(score.device) - loss_func = torch.nn.MarginRankingLoss(0.0) - TotalLoss = loss_func(score, score, ones) - - # candidate loss - n = score.size(1) - for i in range(1, n): - pos_score = score[:, :-i] - neg_score = score[:, i:] - pos_score = pos_score.contiguous().view(-1) - neg_score = neg_score.contiguous().view(-1) - ones = torch.ones(pos_score.size()).cuda(score.device) - loss_func = torch.nn.MarginRankingLoss(self.margin * i) - TotalLoss += loss_func(pos_score, neg_score, ones) - - # gold summary loss - pos_score = summary_score.unsqueeze(-1).expand_as(score) - neg_score = score - pos_score = pos_score.contiguous().view(-1) - neg_score = neg_score.contiguous().view(-1) - ones = torch.ones(pos_score.size()).cuda(score.device) - loss_func = torch.nn.MarginRankingLoss(0.0) - TotalLoss += loss_func(pos_score, neg_score, ones) - - return TotalLoss - -class ValidMetric(MetricBase): - def __init__(self, save_path, data, score=None): - super(ValidMetric, self).__init__() - self._init_param_map(score=score) - - self.save_path = save_path - self.data = data - - self.top1_correct = 0 - self.top6_correct = 0 - self.top10_correct = 0 - - self.rouge = Rouge() - self.ROUGE = 0.0 - self.Error = 0 - - self.cur_idx = 0 - - # an approximate method of calculating ROUGE - def fast_rouge(self, dec, ref): - if dec == '' or ref == '': - return 0.0 - scores = self.rouge.get_scores(dec, ref) - return (scores[0]['rouge-1']['f'] + scores[0]['rouge-2']['f'] + scores[0]['rouge-l']['f']) / 3 - - def evaluate(self, score): - batch_size = score.size(0) - self.top1_correct += int(torch.sum(torch.max(score, dim=1).indices == 0)) - self.top6_correct += int(torch.sum(torch.max(score, dim=1).indices <= 5)) - self.top10_correct += int(torch.sum(torch.max(score, dim=1).indices <= 9)) - - # Fast ROUGE - for i in range(batch_size): - max_idx = int(torch.max(score[i], dim=0).indices) - if max_idx >= len(self.data[self.cur_idx]['indices']): - self.Error += 1 # Check if the candidate summary generated by padding is selected - self.cur_idx += 1 - continue - ext_idx = self.data[self.cur_idx]['indices'][max_idx] - ext_idx.sort() - dec = [] - ref = ' '.join(self.data[self.cur_idx]['summary']) - for j in ext_idx: - dec.append(self.data[self.cur_idx]['text'][j]) - dec = ' '.join(dec) - self.ROUGE += self.fast_rouge(dec, ref) - self.cur_idx += 1 - - def get_metric(self, reset=True): - top1_accuracy = self.top1_correct / self.cur_idx - top6_accuracy = self.top6_correct / self.cur_idx - top10_accuracy = self.top10_correct / self.cur_idx - ROUGE = self.ROUGE / self.cur_idx - eval_result = {'top1_accuracy': top1_accuracy, 'top6_accuracy': top6_accuracy, - 'top10_accuracy': top10_accuracy, 'Error': self.Error, 'ROUGE': ROUGE} - with open(join(self.save_path, 'train_info.txt'), 'a') as f: - print('top1_accuracy = {}, top6_accuracy = {}, top10_accuracy = {}, Error = {}, ROUGE = {}'.format( - top1_accuracy, top6_accuracy, top10_accuracy, self.Error, ROUGE), file=f) - if reset: - self.top1_correct = 0 - self.top6_correct = 0 - self.top10_correct = 0 - self.ROUGE = 0.0 - self.Error = 0 - self.cur_idx = 0 - return eval_result - -class MatchRougeMetric(MetricBase): - def __init__(self, data, dec_path, ref_path, n_total, score=None): - super(MatchRougeMetric, self).__init__() - self._init_param_map(score=score) - self.data = data - self.dec_path = dec_path - self.ref_path = ref_path - self.n_total = n_total - self.cur_idx = 0 - self.ext = [] - self.start = time() - - - def evaluate(self, score): - ext = int(torch.max(score, dim=1).indices) # batch_size = 1 - self.ext.append(ext) - self.cur_idx += 1 - print('{}/{} ({:.2f}%) decoded in {} seconds\r'.format( - self.cur_idx, self.n_total, self.cur_idx/self.n_total*100, timedelta(seconds=int(time()-self.start)) - ), end='') - - def get_metric(self, reset=True): - - print('\nStart writing files !!!') - for i, ext in enumerate(self.ext): - sent_ids = self.data[i]['indices'][ext] - dec, ref = [], [] - - for j in sent_ids: - dec.append(self.data[i]['text'][j]) - for sent in self.data[i]['summary']: - ref.append(sent) - - with open(join(self.dec_path, '{}.dec'.format(i)), 'w') as f: - for sent in dec: - print(sent, file=f) - with open(join(self.ref_path, '{}.ref'.format(i)), 'w') as f: - for sent in ref: - print(sent, file=f) - - print('Start evaluating ROUGE score !!!') - R_1, R_2, R_L = MatchRougeMetric.eval_rouge(self.dec_path, self.ref_path) - eval_result = {'ROUGE-1': R_1, 'ROUGE-2': R_2, 'ROUGE-L':R_L} - - if reset == True: - self.cur_idx = 0 - self.ext = [] - self.data = [] - self.start = time() - return eval_result - - @staticmethod - def eval_rouge(dec_dir, ref_dir, Print=True): - assert _ROUGE_PATH is not None - log.get_global_console_logger().setLevel(logging.WARNING) - dec_pattern = '(\d+).dec' - ref_pattern = '#ID#.ref' - cmd = '-c 95 -r 1000 -n 2 -m' - with tempfile.TemporaryDirectory() as tmp_dir: - Rouge155.convert_summaries_to_rouge_format( - dec_dir, join(tmp_dir, 'dec')) - Rouge155.convert_summaries_to_rouge_format( - ref_dir, join(tmp_dir, 'ref')) - Rouge155.write_config_static( - join(tmp_dir, 'dec'), dec_pattern, - join(tmp_dir, 'ref'), ref_pattern, - join(tmp_dir, 'settings.xml'), system_id=1 - ) - cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') - + ' -e {} '.format(join(_ROUGE_PATH, 'data')) - + cmd - + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) - output = sp.check_output(cmd.split(' '), universal_newlines=True) - R_1 = float(output.split('\n')[3].split(' ')[3]) - R_2 = float(output.split('\n')[7].split(' ')[3]) - R_L = float(output.split('\n')[11].split(' ')[3]) - print(output) - if Print is True: - rouge_path = join(dec_dir, '../ROUGE.txt') - with open(rouge_path, 'w') as f: - print(output, file=f) - return R_1, R_2, R_L - diff --git a/MatchSum/model.py b/MatchSum/model.py deleted file mode 100644 index e7da64d..0000000 --- a/MatchSum/model.py +++ /dev/null @@ -1,57 +0,0 @@ -import torch -from torch import nn -from torch.nn import init - -from transformers import BertModel, RobertaModel - -class MatchSum(nn.Module): - - def __init__(self, candidate_num, encoder, hidden_size=768): - super(MatchSum, self).__init__() - - self.hidden_size = hidden_size - self.candidate_num = candidate_num - - if encoder == 'bert': - self.encoder = BertModel.from_pretrained('bert-base-uncased') - else: - self.encoder = RobertaModel.from_pretrained('roberta-base') - - def forward(self, text_id, candidate_id, summary_id): - - batch_size = text_id.size(0) - - pad_id = 0 # for BERT - if text_id[0][0] == 0: - pad_id = 1 # for RoBERTa - - # get document embedding - input_mask = ~(text_id == pad_id) - out = self.encoder(text_id, attention_mask=input_mask)[0] # last layer - doc_emb = out[:, 0, :] - assert doc_emb.size() == (batch_size, self.hidden_size) # [batch_size, hidden_size] - - # get summary embedding - input_mask = ~(summary_id == pad_id) - out = self.encoder(summary_id, attention_mask=input_mask)[0] # last layer - summary_emb = out[:, 0, :] - assert summary_emb.size() == (batch_size, self.hidden_size) # [batch_size, hidden_size] - - # get summary score - summary_score = torch.cosine_similarity(summary_emb, doc_emb, dim=-1) - - # get candidate embedding - candidate_num = candidate_id.size(1) - candidate_id = candidate_id.view(-1, candidate_id.size(-1)) - input_mask = ~(candidate_id == pad_id) - out = self.encoder(candidate_id, attention_mask=input_mask)[0] - candidate_emb = out[:, 0, :].view(batch_size, candidate_num, self.hidden_size) # [batch_size, candidate_num, hidden_size] - assert candidate_emb.size() == (batch_size, candidate_num, self.hidden_size) - - # get candidate score - doc_emb = doc_emb.unsqueeze(1).expand_as(candidate_emb) - score = torch.cosine_similarity(candidate_emb, doc_emb, dim=-1) # [batch_size, candidate_num] - assert score.size() == (batch_size, candidate_num) - - return {'score': score, 'summary_score': summary_score} - diff --git a/MatchSum/preprocess/get_candidate.py b/MatchSum/preprocess/get_candidate.py deleted file mode 100644 index dbe34ba..0000000 --- a/MatchSum/preprocess/get_candidate.py +++ /dev/null @@ -1,223 +0,0 @@ -import os -import argparse -from os.path import join, exists -import subprocess as sp -import json -import tempfile -import multiprocessing as mp -from time import time -from datetime import timedelta -import queue -import logging -from itertools import combinations - -from cytoolz import curry -from pyrouge.utils import log -from pyrouge import Rouge155 - -from transformers import BertTokenizer, RobertaTokenizer - -MAX_LEN = 512 - -_ROUGE_PATH = '/path/to/RELEASE-1.5.5' -temp_path = './temp' # path to store some temporary files - -original_data, sent_ids = [], [] - -def load_jsonl(data_path): - data = [] - with open(data_path) as f: - for line in f: - data.append(json.loads(line)) - return data - -def get_rouge(path, dec): - log.get_global_console_logger().setLevel(logging.WARNING) - dec_pattern = '(\d+).dec' - ref_pattern = '#ID#.ref' - dec_dir = join(path, 'decode') - ref_dir = join(path, 'reference') - - with open(join(dec_dir, '0.dec'), 'w') as f: - for sentence in dec: - print(sentence, file=f) - - cmd = '-c 95 -r 1000 -n 2 -m' - with tempfile.TemporaryDirectory() as tmp_dir: - Rouge155.convert_summaries_to_rouge_format( - dec_dir, join(tmp_dir, 'dec')) - Rouge155.convert_summaries_to_rouge_format( - ref_dir, join(tmp_dir, 'ref')) - Rouge155.write_config_static( - join(tmp_dir, 'dec'), dec_pattern, - join(tmp_dir, 'ref'), ref_pattern, - join(tmp_dir, 'settings.xml'), system_id=1 - ) - cmd = (join(_ROUGE_PATH, 'ROUGE-1.5.5.pl') - + ' -e {} '.format(join(_ROUGE_PATH, 'data')) - + cmd - + ' -a {}'.format(join(tmp_dir, 'settings.xml'))) - output = sp.check_output(cmd.split(' '), universal_newlines=True) - - line = output.split('\n') - rouge1 = float(line[3].split(' ')[3]) - rouge2 = float(line[7].split(' ')[3]) - rougel = float(line[11].split(' ')[3]) - return (rouge1 + rouge2 + rougel) / 3 - -@curry -def get_candidates(tokenizer, cls, sep_id, idx): - - idx_path = join(temp_path, str(idx)) - - # create some temporary files to calculate ROUGE - sp.call('mkdir ' + idx_path, shell=True) - sp.call('mkdir ' + join(idx_path, 'decode'), shell=True) - sp.call('mkdir ' + join(idx_path, 'reference'), shell=True) - - # load data - data = {} - data['text'] = original_data[idx]['text'] - data['summary'] = original_data[idx]['summary'] - - # write reference summary to temporary files - ref_dir = join(idx_path, 'reference') - with open(join(ref_dir, '0.ref'), 'w') as f: - for sentence in data['summary']: - print(sentence, file=f) - - # get candidate summaries - # here is for CNN/DM: truncate each document into the 5 most important sentences (using BertExt), - # then select any 2 or 3 sentences to form a candidate summary, so there are C(5,2)+C(5,3)=20 candidate summaries. - # if you want to process other datasets, you may need to adjust these numbers according to specific situation. - sent_id = sent_ids[idx]['sent_id'][:5] - indices = list(combinations(sent_id, 2)) - indices += list(combinations(sent_id, 3)) - if len(sent_id) < 2: - indices = [sent_id] - - # get ROUGE score for each candidate summary and sort them in descending order - score = [] - for i in indices: - i = list(i) - i.sort() - # write dec - dec = [] - for j in i: - sent = data['text'][j] - dec.append(sent) - score.append((i, get_rouge(idx_path, dec))) - score.sort(key=lambda x : x[1], reverse=True) - - # write candidate indices and score - data['ext_idx'] = sent_id - data['indices'] = [] - data['score'] = [] - for i, R in score: - data['indices'].append(list(map(int, i))) - data['score'].append(R) - - # tokenize and get candidate_id - candidate_summary = [] - for i in data['indices']: - cur_summary = [cls] - for j in i: - cur_summary += data['text'][j].split() - cur_summary = cur_summary[:MAX_LEN] - cur_summary = ' '.join(cur_summary) - candidate_summary.append(cur_summary) - - data['candidate_id'] = [] - for summary in candidate_summary: - token_ids = tokenizer.encode(summary, add_special_tokens=False)[:(MAX_LEN - 1)] - token_ids += sep_id - data['candidate_id'].append(token_ids) - - # tokenize and get text_id - text = [cls] - for sent in data['text']: - text += sent.split() - text = text[:MAX_LEN] - text = ' '.join(text) - token_ids = tokenizer.encode(text, add_special_tokens=False)[:(MAX_LEN - 1)] - token_ids += sep_id - data['text_id'] = token_ids - - # tokenize and get summary_id - summary = [cls] - for sent in data['summary']: - summary += sent.split() - summary = summary[:MAX_LEN] - summary = ' '.join(summary) - token_ids = tokenizer.encode(summary, add_special_tokens=False)[:(MAX_LEN - 1)] - token_ids += sep_id - data['summary_id'] = token_ids - - # write processed data to temporary file - processed_path = join(temp_path, 'processed') - with open(join(processed_path, '{}.json'.format(idx)), 'w') as f: - json.dump(data, f, indent=4) - - sp.call('rm -r ' + idx_path, shell=True) - -def get_candidates_mp(args): - - # choose tokenizer - if args.tokenizer == 'bert': - tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') - cls, sep = '[CLS]', '[SEP]' - else: - tokenizer = RobertaTokenizer.from_pretrained('roberta-base') - cls, sep = '', '' - sep_id = tokenizer.encode(sep, add_special_tokens=False) - - # load original data and indices - global original_data, sent_ids - original_data = load_jsonl(args.data_path) - sent_ids = load_jsonl(args.index_path) - n_files = len(original_data) - assert len(sent_ids) == len(original_data) - print('total {} documents'.format(n_files)) - os.makedirs(temp_path) - processed_path = join(temp_path, 'processed') - os.makedirs(processed_path) - - # use multi-processing to get candidate summaries - start = time() - print('start getting candidates with multi-processing !!!') - - with mp.Pool() as pool: - list(pool.imap_unordered(get_candidates(tokenizer, cls, sep_id), range(n_files), chunksize=64)) - - print('finished in {}'.format(timedelta(seconds=time()-start))) - - # write processed data - print('start writing {} files'.format(n_files)) - for i in range(n_files): - with open(join(processed_path, '{}.json'.format(i))) as f: - data = json.loads(f.read()) - with open(args.write_path, 'a') as f: - print(json.dumps(data), file=f) - - os.system('rm -r {}'.format(temp_path)) - -if __name__ == '__main__': - - parser = argparse.ArgumentParser( - description='Process truncated documents to obtain candidate summaries' - ) - parser.add_argument('--tokenizer', type=str, required=True, - help='BERT/RoBERTa') - parser.add_argument('--data_path', type=str, required=True, - help='path to the original dataset, the original dataset should contain text and summary') - parser.add_argument('--index_path', type=str, required=True, - help='indices of the remaining sentences of the truncated document') - parser.add_argument('--write_path', type=str, required=True, - help='path to store the processed dataset') - - args = parser.parse_args() - assert args.tokenizer in ['bert', 'roberta'] - assert exists(args.data_path) - assert exists(args.index_path) - - get_candidates_mp(args) diff --git a/MatchSum/preprocess/test_cnndm.jsonl b/MatchSum/preprocess/test_cnndm.jsonl deleted file mode 100644 index c02b138..0000000 --- a/MatchSum/preprocess/test_cnndm.jsonl +++ /dev/null @@ -1,11489 +0,0 @@ -{"sent_id": [1, 2, 3, 0, 6, 9]} -{"sent_id": [2, 0, 6, 3, 1, 15]} -{"sent_id": [4, 1, 0, 5, 2, 10]} -{"sent_id": [3, 1, 5, 0, 2, 9]} -{"sent_id": [1, 7, 9, 4, 11, 16]} -{"sent_id": [1, 8, 2, 3, 7, 0]} -{"sent_id": [3, 0, 6, 9, 1, 10]} -{"sent_id": [3, 1, 2, 13, 8, 7]} -{"sent_id": [1, 3, 0, 2, 9, 12]} -{"sent_id": [8, 3, 7, 2, 9, 4]} -{"sent_id": [2, 1, 10, 0, 11, 3]} -{"sent_id": [5, 4, 19, 12, 1, 13]} -{"sent_id": [2, 13, 8, 3, 1, 9]} -{"sent_id": [0, 3, 2, 1, 5, 6]} -{"sent_id": [3, 0, 2, 9, 4, 1]} -{"sent_id": [8, 1, 4, 12, 10, 0]} -{"sent_id": [0, 1, 2, 3, 10, 11]} -{"sent_id": [3, 4, 6, 5, 18, 7]} -{"sent_id": [2, 5, 9, 0, 4, 1]} -{"sent_id": [1, 2, 3, 24, 0, 25]} -{"sent_id": [3, 4, 6, 14, 1, 7]} -{"sent_id": [9, 0, 1, 6, 2, 5]} -{"sent_id": [0, 5, 4, 10, 1, 3]} -{"sent_id": [0, 1, 6, 8, 5, 4]} -{"sent_id": [0, 1, 10, 2, 7, 3]} -{"sent_id": [0, 6, 19, 2, 1, 3]} -{"sent_id": [6, 4, 2, 5, 10, 13]} -{"sent_id": [1, 4, 0, 5, 6, 3]} -{"sent_id": [7, 0, 6, 9, 4, 15]} -{"sent_id": [3, 9, 4, 12, 2, 7]} -{"sent_id": [1, 5, 3, 4, 0, 2]} -{"sent_id": [1, 2, 3, 8, 9, 6]} -{"sent_id": [1, 2, 4, 5, 3, 6]} -{"sent_id": [1, 3, 2, 5, 0, 14]} -{"sent_id": [1, 7, 4, 2, 16, 8]} -{"sent_id": [1, 2, 0, 7, 5, 12]} -{"sent_id": [0, 2, 7, 6, 5, 9]} -{"sent_id": [2, 3, 4, 1, 6, 5]} -{"sent_id": [2, 3, 0, 1, 6, 9]} -{"sent_id": [3, 1, 9, 2, 0, 7]} -{"sent_id": [4, 11, 1, 2, 0, 6]} -{"sent_id": [1, 11, 7, 14, 0, 12]} -{"sent_id": [3, 6, 17, 2, 1, 4]} -{"sent_id": [11, 6, 19, 12, 13, 14]} -{"sent_id": [0, 4, 3, 5, 1, 8]} -{"sent_id": [2, 0, 4, 1, 3, 5]} -{"sent_id": [2, 1, 3, 11, 15, 0]} -{"sent_id": [1, 15, 7, 5, 16, 11]} -{"sent_id": [0, 5, 3, 4, 11, 10]} -{"sent_id": [3, 2, 1, 8, 14, 4]} -{"sent_id": [4, 2, 3, 0, 5, 11]} -{"sent_id": [4, 1, 2, 0, 5, 3]} -{"sent_id": [0, 2, 9, 10, 14, 1]} -{"sent_id": [3, 4, 0, 21, 5, 1]} -{"sent_id": [1, 3, 0, 6, 4, 5]} -{"sent_id": [12, 13, 0, 1, 15, 6]} -{"sent_id": [1, 2, 9, 3, 11, 13]} -{"sent_id": [4, 7, 10, 8, 0, 11]} -{"sent_id": [4, 1, 3, 2, 10, 5]} -{"sent_id": [0, 3, 1, 2, 5, 7]} -{"sent_id": [3, 1, 5, 0, 2, 4]} -{"sent_id": [3, 2, 4, 0, 5, 20]} -{"sent_id": [3, 2, 4, 1, 7, 0]} -{"sent_id": [5, 8, 6, 2, 3, 4]} -{"sent_id": [0, 3, 2, 5, 13, 14]} -{"sent_id": [0, 1, 3, 5, 2, 4]} -{"sent_id": [0, 2, 4, 3, 6, 7]} -{"sent_id": [1, 0, 2, 6, 3, 12]} -{"sent_id": [1, 3, 2, 8, 7, 4]} -{"sent_id": [5, 4, 13, 11, 16, 8]} -{"sent_id": [0, 2, 14, 3, 8, 9]} -{"sent_id": [2, 3, 16, 0, 9, 4]} -{"sent_id": [0, 1, 9, 2, 5, 10]} -{"sent_id": [1, 5, 3, 8, 4, 7]} -{"sent_id": [1, 3, 4, 12, 6, 7]} -{"sent_id": [4, 2, 9, 6, 13, 5]} -{"sent_id": [0, 1, 5, 4, 2, 3]} -{"sent_id": [1, 4, 2, 5, 6, 14]} -{"sent_id": [4, 2, 3, 1, 5, 0]} -{"sent_id": [1, 2, 5, 0, 3, 4]} -{"sent_id": [4, 5, 6, 1, 2, 19]} -{"sent_id": [3, 4, 1, 10, 0, 9]} -{"sent_id": [3, 1, 2, 7, 5, 11]} -{"sent_id": [1, 0, 3, 4, 13, 2]} -{"sent_id": [0, 1, 5, 3, 6, 2]} -{"sent_id": [1, 0, 2, 7, 6, 5]} -{"sent_id": [1, 2, 0, 4, 12, 10]} -{"sent_id": [1, 4, 6, 0, 9, 2]} -{"sent_id": [5, 20, 1, 9, 11, 8]} -{"sent_id": [0, 1, 4, 3, 24, 2]} -{"sent_id": [1, 2, 3, 10, 4, 0]} -{"sent_id": [3, 1, 2, 9, 15, 10]} -{"sent_id": [1, 6, 7, 2, 8, 0]} -{"sent_id": [3, 6, 2, 5, 15, 4]} -{"sent_id": [4, 11, 7, 3, 2, 13]} -{"sent_id": [0, 1, 10, 7, 12, 13]} -{"sent_id": [1, 5, 6, 13, 14, 0]} -{"sent_id": [0, 2, 1, 4, 14, 15]} -{"sent_id": [0, 9, 2, 12, 3, 15]} -{"sent_id": [2, 9, 10, 6, 4, 3]} -{"sent_id": [8, 0, 1, 13, 2, 4]} -{"sent_id": [0, 1, 7, 8, 4, 3]} -{"sent_id": [1, 5, 3, 2, 4, 6]} -{"sent_id": [2, 19, 3, 1, 20, 4]} -{"sent_id": [3, 1, 11, 0, 8, 5]} -{"sent_id": [9, 4, 3, 1, 2, 5]} -{"sent_id": [0, 1, 4, 2, 5, 12]} -{"sent_id": [5, 1, 0, 7, 6, 2]} -{"sent_id": [1, 2, 4, 0, 3, 10]} -{"sent_id": [1, 2, 3, 8, 4, 0]} -{"sent_id": [1, 7, 5, 2, 0, 8]} -{"sent_id": [2, 4, 5, 1, 7, 3]} -{"sent_id": [5, 4, 3, 0, 2, 1]} -{"sent_id": [15, 1, 2, 0, 3, 8]} -{"sent_id": [3, 1, 2, 4, 0, 8]} -{"sent_id": [1, 7, 2, 0, 5, 9]} -{"sent_id": [2, 3, 1, 11, 4, 6]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [1, 5, 9, 4, 3, 2]} -{"sent_id": [0, 11, 3, 2, 6, 1]} -{"sent_id": [1, 17, 0, 4, 14, 7]} -{"sent_id": [4, 9, 1, 0, 5, 2]} -{"sent_id": [2, 4, 0, 1, 5, 6]} -{"sent_id": [1, 2, 6, 3, 13, 9]} -{"sent_id": [2, 15, 4, 1, 3, 16]} -{"sent_id": [1, 2, 3, 6, 0, 7]} -{"sent_id": [2, 0, 11, 4, 12, 6]} -{"sent_id": [1, 2, 4, 6, 10, 3]} -{"sent_id": [0, 3, 6, 4, 5, 1]} -{"sent_id": [1, 2, 4, 3, 0, 8]} -{"sent_id": [3, 0, 1, 14, 12, 10]} -{"sent_id": [4, 3, 10, 2, 5, 6]} -{"sent_id": [1, 5, 4, 2, 0, 3]} -{"sent_id": [2, 14, 0, 3, 1, 8]} -{"sent_id": [6, 0, 3, 2, 1, 10]} -{"sent_id": [1, 6, 5, 14, 2, 7]} -{"sent_id": [2, 0, 14, 4, 3, 1]} -{"sent_id": [3, 4, 2, 8, 1, 7]} -{"sent_id": [1, 10, 2, 3, 4, 13]} -{"sent_id": [1, 4, 5, 3, 2, 6]} -{"sent_id": [5, 3, 4, 0, 7, 6]} -{"sent_id": [0, 2, 1, 3, 4, 10]} -{"sent_id": [3, 1, 8, 2, 5, 9]} -{"sent_id": [1, 5, 2, 11, 7, 6]} -{"sent_id": [1, 0, 2, 4, 3, 5]} -{"sent_id": [2, 1, 4, 5, 6, 3]} -{"sent_id": [2, 6, 3, 9, 8, 4]} -{"sent_id": [1, 5, 4, 0, 18, 17]} -{"sent_id": [4, 1, 0, 2, 3, 5]} -{"sent_id": [11, 5, 2, 4, 8, 1]} -{"sent_id": [4, 6, 3, 8, 1, 2]} -{"sent_id": [0, 12, 3, 2, 5, 1]} -{"sent_id": [2, 8, 5, 1, 3, 4]} -{"sent_id": [0, 6, 1, 2, 5, 3]} -{"sent_id": [7, 3, 10, 1, 2, 12]} -{"sent_id": [4, 0, 13, 2, 3, 1]} -{"sent_id": [3, 0, 4, 1, 2]} -{"sent_id": [1, 11, 9, 4, 2, 3]} -{"sent_id": [1, 0, 4, 7, 3, 2]} -{"sent_id": [2, 3, 0, 4, 6, 5]} -{"sent_id": [5, 2, 1, 0, 3, 9]} -{"sent_id": [1, 4, 3, 15, 2, 6]} -{"sent_id": [0, 1, 10, 13, 11, 7]} -{"sent_id": [15, 6, 2, 3, 11, 4]} -{"sent_id": [0, 1, 2, 3, 11, 7]} -{"sent_id": [2, 0, 1, 7, 11, 9]} -{"sent_id": [3, 2, 7, 5, 8, 4]} -{"sent_id": [4, 1, 3, 5, 2, 0]} -{"sent_id": [1, 6, 3, 5, 2, 0]} -{"sent_id": [4, 5, 15, 6, 0, 1]} -{"sent_id": [2, 1, 5, 6, 8, 7]} -{"sent_id": [1, 2, 3, 4, 6, 7]} -{"sent_id": [0, 8, 1, 4, 6, 2]} -{"sent_id": [3, 1, 5, 0, 2, 6]} -{"sent_id": [1, 4, 2, 11, 0, 9]} -{"sent_id": [1, 2, 8, 4, 3, 19]} -{"sent_id": [5, 2, 0, 6, 10, 14]} -{"sent_id": [5, 2, 3, 10, 4, 13]} -{"sent_id": [8, 10, 9, 12, 13, 22]} -{"sent_id": [11, 3, 1, 5, 0, 2]} -{"sent_id": [2, 9, 0, 6, 5, 3]} -{"sent_id": [3, 2, 4, 7, 1, 0]} -{"sent_id": [7, 5, 4, 18, 8, 3]} -{"sent_id": [3, 5, 0, 2, 1, 9]} -{"sent_id": [4, 0, 3, 1, 18, 2]} -{"sent_id": [2, 3, 0, 17, 4, 7]} -{"sent_id": [1, 2, 13, 4, 0, 15]} -{"sent_id": [15, 3, 1, 4, 2, 0]} -{"sent_id": [1, 7, 0, 12, 8, 2]} -{"sent_id": [3, 2, 4, 1, 11, 12]} -{"sent_id": [6, 9, 1, 2, 3, 10]} -{"sent_id": [1, 4, 3, 11, 2, 10]} -{"sent_id": [4, 1, 14, 3, 0, 2]} -{"sent_id": [10, 3, 1, 5, 2, 11]} -{"sent_id": [2, 0, 1, 7, 4, 8]} -{"sent_id": [2, 1, 4, 3, 10, 0]} -{"sent_id": [3, 10, 4, 1, 9, 7]} -{"sent_id": [1, 2, 3, 4, 10, 6]} -{"sent_id": [0, 8, 1, 7, 2, 11]} -{"sent_id": [8, 0, 1, 3, 6, 4]} -{"sent_id": [3, 1, 0, 4, 18, 14]} -{"sent_id": [6, 1, 15, 0, 8, 3]} -{"sent_id": [0, 3, 4, 6, 5, 11]} -{"sent_id": [1, 0, 2, 5, 4, 3]} -{"sent_id": [2, 0, 4, 3, 1, 6]} -{"sent_id": [5, 0, 1, 2, 18, 19]} -{"sent_id": [1, 8, 2, 3, 0, 5]} -{"sent_id": [0, 1, 4, 9, 6, 3]} -{"sent_id": [4, 5, 1, 10, 0, 2]} -{"sent_id": [1, 0, 3, 5, 4, 2]} -{"sent_id": [2, 10, 8, 1, 4, 6]} -{"sent_id": [3, 4, 0, 8, 1, 5]} -{"sent_id": [0, 3, 2, 7, 4, 1]} -{"sent_id": [5, 9, 15, 14, 13, 0]} -{"sent_id": [6, 0, 1, 12, 8, 11]} -{"sent_id": [0, 8, 4, 2, 5, 1]} -{"sent_id": [2, 3, 4, 7, 8, 1]} -{"sent_id": [4, 1, 5, 0, 2, 6]} -{"sent_id": [2, 1, 3, 9, 0, 5]} -{"sent_id": [1, 3, 2, 4, 6, 10]} -{"sent_id": [0, 3, 6, 1, 2, 8]} -{"sent_id": [8, 1, 0, 9, 13, 2]} -{"sent_id": [13, 1, 4, 8, 15, 14]} -{"sent_id": [0, 2, 4, 3, 6, 5]} -{"sent_id": [5, 1, 6, 2, 4, 10]} -{"sent_id": [2, 11, 1, 5, 0, 4]} -{"sent_id": [3, 2, 4, 6, 10, 7]} -{"sent_id": [0, 1, 2, 8, 9, 3]} -{"sent_id": [2, 1, 3, 5, 11, 0]} -{"sent_id": [1, 4, 5, 11, 3, 2]} -{"sent_id": [0, 3, 4, 9, 2, 8]} -{"sent_id": [2, 3, 4, 6, 5, 15]} -{"sent_id": [2, 0, 18, 7, 1, 5]} -{"sent_id": [3, 10, 11, 2, 5, 7]} -{"sent_id": [1, 0, 7, 6, 3, 2]} -{"sent_id": [5, 1, 4, 0, 2, 18]} -{"sent_id": [1, 5, 4, 0, 10, 2]} -{"sent_id": [3, 12, 8, 2, 4, 0]} -{"sent_id": [3, 1, 0, 4, 9, 2]} -{"sent_id": [2, 5, 4, 0, 9, 7]} -{"sent_id": [4, 8, 5, 6, 2, 3]} -{"sent_id": [0, 3, 4, 6, 5, 12]} -{"sent_id": [0, 1, 2, 4, 5, 6]} -{"sent_id": [1, 2, 7, 0, 8, 3]} -{"sent_id": [4, 1, 2, 0, 3, 5]} -{"sent_id": [2, 6, 11, 12, 7, 5]} -{"sent_id": [1, 2, 5, 3, 6, 4]} -{"sent_id": [3, 1, 0, 2, 6, 16]} -{"sent_id": [3, 8, 1, 0, 15, 5]} -{"sent_id": [1, 2, 3, 8, 0, 10]} -{"sent_id": [1, 9, 4, 10, 0, 2]} -{"sent_id": [1, 9, 5, 0, 6, 12]} -{"sent_id": [2, 5, 3, 4, 6, 0]} -{"sent_id": [4, 1, 2, 3, 8, 6]} -{"sent_id": [8, 3, 1, 4, 20, 16]} -{"sent_id": [1, 4, 2, 11, 3, 5]} -{"sent_id": [3, 5, 2, 1, 8, 19]} -{"sent_id": [3, 4, 1, 5, 10, 15]} -{"sent_id": [0, 3, 13, 2, 4, 1]} -{"sent_id": [4, 2, 9, 1, 13, 5]} -{"sent_id": [1, 0, 5, 10, 2, 6]} -{"sent_id": [1, 2, 0, 5, 10, 3]} -{"sent_id": [4, 1, 13, 15, 3, 0]} -{"sent_id": [6, 9, 4, 2, 0, 1]} -{"sent_id": [3, 2, 10, 4, 9, 0]} -{"sent_id": [0, 3, 12, 14, 1, 7]} -{"sent_id": [1, 13, 3, 0, 14, 6]} -{"sent_id": [1, 11, 6, 4, 5, 7]} -{"sent_id": [2, 3, 0, 5, 1, 10]} -{"sent_id": [3, 4, 2, 1, 0, 6]} -{"sent_id": [1, 2, 4, 5, 9, 8]} -{"sent_id": [2, 9, 1, 3, 0, 4]} -{"sent_id": [3, 0, 4, 9, 1, 5]} -{"sent_id": [2, 7, 4, 12, 0, 1]} -{"sent_id": [4, 3, 1, 0, 8, 5]} -{"sent_id": [3, 9, 4, 0, 1, 2]} -{"sent_id": [3, 6, 14, 1, 2, 12]} -{"sent_id": [0, 17, 1, 2, 3, 18]} -{"sent_id": [2, 1, 10, 5, 4, 3]} -{"sent_id": [3, 6, 1, 13, 7, 11]} -{"sent_id": [6, 14, 15, 18, 17, 0]} -{"sent_id": [4, 0, 1, 16, 2, 5]} -{"sent_id": [2, 5, 0, 3, 1, 4]} -{"sent_id": [8, 7, 0, 1, 4, 9]} -{"sent_id": [2, 0, 3, 6, 4, 8]} -{"sent_id": [0, 1, 2, 9, 5, 4]} -{"sent_id": [2, 6, 5, 3, 1, 7]} -{"sent_id": [1, 4, 0, 11, 16, 2]} -{"sent_id": [3, 0, 13, 1, 2, 8]} -{"sent_id": [5, 0, 3, 4, 1, 6]} -{"sent_id": [3, 0, 4, 6, 11, 7]} -{"sent_id": [4, 13, 5, 3, 14, 12]} -{"sent_id": [2, 1, 0, 4, 8, 5]} -{"sent_id": [7, 0, 1, 6, 14, 12]} -{"sent_id": [2, 4, 14, 0, 6, 5]} -{"sent_id": [1, 3, 9, 8, 0, 13]} -{"sent_id": [1, 3, 0, 5, 4, 8]} -{"sent_id": [1, 2, 4, 7, 6, 3]} -{"sent_id": [4, 8, 13, 1, 2, 0]} -{"sent_id": [1, 8, 3, 10, 2, 4]} -{"sent_id": [1, 2, 6, 4, 0, 14]} -{"sent_id": [4, 2, 0, 7, 3, 1]} -{"sent_id": [2, 6, 8, 3, 9, 1]} -{"sent_id": [1, 3, 5, 0, 6, 2]} -{"sent_id": [3, 1, 0, 2, 5, 4]} -{"sent_id": [0, 10, 1, 4, 18, 3]} -{"sent_id": [4, 13, 1, 3, 2, 5]} -{"sent_id": [3, 4, 6, 1, 2, 5]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [7, 8, 5, 6, 15, 12]} -{"sent_id": [3, 4, 2, 5, 6, 9]} -{"sent_id": [4, 2, 5, 3, 0, 9]} -{"sent_id": [4, 13, 0, 2, 14, 3]} -{"sent_id": [4, 13, 1, 0, 25, 24]} -{"sent_id": [1, 3, 9, 2, 0, 8]} -{"sent_id": [2, 3, 0, 4, 12, 5]} -{"sent_id": [3, 6, 4, 5, 9, 7]} -{"sent_id": [1, 3, 9, 4, 2, 10]} -{"sent_id": [1, 3, 2, 10, 0, 12]} -{"sent_id": [1, 2, 3, 4, 5, 0]} -{"sent_id": [4, 1, 5, 2, 0, 10]} -{"sent_id": [3, 1, 12, 2, 4, 5]} -{"sent_id": [1, 9, 3, 8, 5, 0]} -{"sent_id": [2, 1, 3, 12, 6, 5]} -{"sent_id": [1, 0, 2, 3, 6, 5]} -{"sent_id": [9, 0, 4, 1, 8, 3]} -{"sent_id": [2, 1, 4, 5, 3, 7]} -{"sent_id": [3, 8, 7, 4, 1, 2]} -{"sent_id": [0, 1, 3, 2, 8, 4]} -{"sent_id": [7, 1, 2, 9, 5, 3]} -{"sent_id": [0, 3, 13, 1, 2, 4]} -{"sent_id": [1, 3, 2, 5, 6, 4]} -{"sent_id": [1, 2, 7, 0, 4, 3]} -{"sent_id": [2, 4, 0, 1, 6, 13]} -{"sent_id": [1, 3, 4, 0, 2, 13]} -{"sent_id": [2, 4, 8, 3, 14, 5]} -{"sent_id": [2, 0, 4, 3, 5, 1]} -{"sent_id": [2, 3, 10, 0, 1, 11]} -{"sent_id": [5, 1, 0, 12, 6, 13]} -{"sent_id": [1, 0, 4, 2, 3, 5]} -{"sent_id": [1, 3, 5, 10, 4, 0]} -{"sent_id": [3, 0, 8, 7, 2, 10]} -{"sent_id": [1, 2, 3, 6, 7, 4]} -{"sent_id": [3, 15, 0, 13, 2, 1]} -{"sent_id": [8, 6, 16, 20, 3, 1]} -{"sent_id": [7, 12, 13, 2, 8, 3]} -{"sent_id": [2, 0, 3, 4, 6, 5]} -{"sent_id": [2, 4, 1, 8, 3, 6]} -{"sent_id": [3, 1, 4, 2, 17, 0]} -{"sent_id": [3, 2, 1, 9, 0, 4]} -{"sent_id": [0, 12, 4, 8, 13, 14]} -{"sent_id": [12, 0, 3, 2, 1, 5]} -{"sent_id": [1, 4, 0, 3, 5, 2]} -{"sent_id": [3, 4, 1, 5, 0, 8]} -{"sent_id": [1, 2, 5, 6, 3, 0]} -{"sent_id": [4, 1, 16, 2, 0, 6]} -{"sent_id": [3, 4, 2, 9, 1, 8]} -{"sent_id": [2, 3, 1, 7, 0, 5]} -{"sent_id": [2, 4, 17, 5, 3, 0]} -{"sent_id": [1, 2, 0, 6, 11, 7]} -{"sent_id": [5, 0, 7, 1, 3, 6]} -{"sent_id": [1, 3, 2, 6, 4, 10]} -{"sent_id": [2, 4, 1, 7, 8, 3]} -{"sent_id": [3, 4, 10, 5, 6, 19]} -{"sent_id": [1, 2, 5, 6, 0, 7]} -{"sent_id": [20, 0, 6, 1, 4, 7]} -{"sent_id": [2, 0, 4, 3, 15, 6]} -{"sent_id": [6, 7, 16, 19, 12, 1]} -{"sent_id": [3, 4, 5, 13, 9, 8]} -{"sent_id": [2, 1, 6, 0, 9, 14]} -{"sent_id": [0, 5, 1, 8, 4, 9]} -{"sent_id": [1, 2, 4, 12, 5, 13]} -{"sent_id": [1, 5, 0, 6, 2, 3]} -{"sent_id": [0, 1, 4, 2, 6, 5]} -{"sent_id": [0, 8, 2, 12, 11, 6]} -{"sent_id": [0, 3, 8, 1, 11, 12]} -{"sent_id": [0, 7, 3, 12, 14, 2]} -{"sent_id": [2, 1, 3, 4, 8, 5]} -{"sent_id": [4, 1, 3, 2, 7, 8]} -{"sent_id": [3, 9, 8, 16, 2, 1]} -{"sent_id": [7, 1, 0, 6, 2, 4]} -{"sent_id": [1, 7, 15, 8, 0, 2]} -{"sent_id": [3, 4, 5, 1, 11, 6]} -{"sent_id": [2, 3, 4, 8, 5, 7]} -{"sent_id": [0, 1, 6, 2, 14, 19]} -{"sent_id": [4, 2, 5, 3, 11, 6]} -{"sent_id": [1, 2, 6, 5, 13, 4]} -{"sent_id": [0, 3, 4, 5, 12, 2]} -{"sent_id": [4, 1, 2, 11, 3, 7]} -{"sent_id": [7, 0, 2, 1, 4, 12]} -{"sent_id": [1, 2, 3, 0, 6, 4]} -{"sent_id": [1, 11, 3, 5, 2, 0]} -{"sent_id": [2, 0, 1, 4, 10, 11]} -{"sent_id": [1, 2, 14, 4, 15, 6]} -{"sent_id": [15, 0, 1, 3, 4, 13]} -{"sent_id": [1, 2, 15, 6, 0, 7]} -{"sent_id": [2, 3, 1, 5, 6, 7]} -{"sent_id": [0, 2, 5, 7, 1, 4]} -{"sent_id": [10, 9, 0, 2, 16, 1]} -{"sent_id": [1, 7, 0, 14, 6, 5]} -{"sent_id": [3, 10, 2, 1, 14, 4]} -{"sent_id": [3, 1, 4, 5, 2, 0]} -{"sent_id": [0, 3, 9, 2, 6, 5]} -{"sent_id": [1, 4, 5, 3, 9, 0]} -{"sent_id": [13, 4, 7, 2, 16, 8]} -{"sent_id": [1, 2, 4, 5, 3, 0]} -{"sent_id": [3, 5, 10, 4, 7, 2]} -{"sent_id": [1, 2, 0, 5, 6, 4]} -{"sent_id": [3, 10, 1, 2, 6, 0]} -{"sent_id": [8, 2, 3, 9, 12, 16]} -{"sent_id": [1, 12, 3, 2, 5, 4]} -{"sent_id": [2, 3, 1, 5, 6, 0]} -{"sent_id": [2, 3, 0, 15, 4, 19]} -{"sent_id": [3, 4, 0, 1, 2, 19]} -{"sent_id": [2, 7, 1, 3, 4, 0]} -{"sent_id": [16, 0, 2, 13, 14, 1]} -{"sent_id": [1, 0, 4, 10, 5, 13]} -{"sent_id": [1, 3, 2, 6, 14, 0]} -{"sent_id": [3, 4, 2, 6, 1, 5]} -{"sent_id": [1, 3, 13, 2, 5, 0]} -{"sent_id": [1, 2, 10, 0, 8, 6]} -{"sent_id": [2, 3, 9, 1, 4, 13]} -{"sent_id": [4, 0, 2, 15, 1, 6]} -{"sent_id": [2, 0, 1, 3, 4, 8]} -{"sent_id": [3, 0, 4, 19, 5, 18]} -{"sent_id": [9, 10, 4, 1, 2, 3]} -{"sent_id": [2, 3, 5, 0, 4, 9]} -{"sent_id": [1, 2, 3, 7, 8, 4]} -{"sent_id": [1, 5, 0, 11, 2, 7]} -{"sent_id": [3, 1, 0, 2, 9, 13]} -{"sent_id": [1, 4, 0, 2, 3, 6]} -{"sent_id": [1, 0, 8, 2, 3, 4]} -{"sent_id": [1, 3, 2, 17, 4, 0]} -{"sent_id": [3, 9, 2, 1, 0, 4]} -{"sent_id": [0, 3, 1, 4, 5, 18]} -{"sent_id": [2, 1, 3, 5, 4, 10]} -{"sent_id": [1, 2, 3, 13, 4, 7]} -{"sent_id": [2, 1, 13, 4, 3, 5]} -{"sent_id": [3, 2, 11, 8, 10, 1]} -{"sent_id": [7, 1, 8, 3, 0, 2]} -{"sent_id": [3, 2, 1, 4, 0, 7]} -{"sent_id": [4, 5, 1, 3, 21, 10]} -{"sent_id": [5, 3, 2, 6, 8, 9]} -{"sent_id": [1, 2, 3, 10, 4, 6]} -{"sent_id": [7, 8, 3, 1, 18, 5]} -{"sent_id": [8, 10, 3, 6, 2, 11]} -{"sent_id": [0, 3, 6, 7, 11, 2]} -{"sent_id": [1, 2, 3, 9, 6, 5]} -{"sent_id": [1, 2, 5, 8, 6, 4]} -{"sent_id": [2, 1, 0, 14, 15, 5]} -{"sent_id": [4, 0, 14, 1, 5, 15]} -{"sent_id": [4, 10, 3, 14, 12, 8]} -{"sent_id": [5, 0, 3, 9, 14, 1]} -{"sent_id": [6, 3, 10, 0, 5, 11]} -{"sent_id": [3, 2, 1, 4, 6, 0]} -{"sent_id": [3, 8, 0, 1, 4, 2]} -{"sent_id": [7, 1, 0, 4, 10, 15]} -{"sent_id": [1, 3, 2, 4, 14, 13]} -{"sent_id": [0, 1, 13, 7, 9, 10]} -{"sent_id": [0, 3, 2, 4, 1, 5]} -{"sent_id": [4, 3, 9, 12, 8, 7]} -{"sent_id": [2, 1, 4, 0, 5, 8]} -{"sent_id": [2, 1, 4, 0, 5, 7]} -{"sent_id": [1, 0, 6, 12, 21, 20]} -{"sent_id": [6, 0, 1, 3, 9, 22]} -{"sent_id": [1, 3, 16, 2, 0, 4]} -{"sent_id": [1, 5, 2, 6, 7, 14]} -{"sent_id": [8, 1, 0, 4, 9, 6]} -{"sent_id": [5, 13, 3, 8, 4, 12]} -{"sent_id": [2, 13, 1, 0, 7, 9]} -{"sent_id": [5, 1, 2, 14, 3, 13]} -{"sent_id": [0, 2, 5, 3, 1, 13]} -{"sent_id": [8, 1, 0, 10, 2, 3]} -{"sent_id": [6, 1, 4, 7, 21, 22]} -{"sent_id": [3, 4, 5, 9, 10, 2]} -{"sent_id": [0, 1, 3, 2, 4, 19]} -{"sent_id": [0, 2, 1, 3, 9, 4]} -{"sent_id": [9, 5, 2, 3, 0, 4]} -{"sent_id": [3, 1, 12, 4, 2, 9]} -{"sent_id": [12, 4, 3, 0, 13, 2]} -{"sent_id": [5, 13, 7, 3, 2, 10]} -{"sent_id": [2, 0, 3, 4, 9, 1]} -{"sent_id": [3, 4, 1, 0, 2, 6]} -{"sent_id": [3, 0, 4, 1, 2, 5]} -{"sent_id": [1, 2, 0, 8, 6, 14]} -{"sent_id": [1, 0, 11, 2, 4, 3]} -{"sent_id": [1, 0, 11, 2, 7, 8]} -{"sent_id": [0, 1, 2, 4, 10, 7]} -{"sent_id": [1, 4, 3, 7, 5, 2]} -{"sent_id": [2, 0, 3, 14, 4, 5]} -{"sent_id": [6, 5, 1, 0, 7, 11]} -{"sent_id": [0, 2, 4, 5, 3, 1]} -{"sent_id": [0, 2, 12, 1, 4, 11]} -{"sent_id": [3, 4, 0, 7, 8, 13]} -{"sent_id": [1, 3, 2, 4, 5, 10]} -{"sent_id": [1, 4, 2, 3, 11, 10]} -{"sent_id": [6, 3, 2, 0, 1, 7]} -{"sent_id": [3, 4, 5, 1, 7, 0]} -{"sent_id": [1, 10, 3, 2, 14, 0]} -{"sent_id": [3, 1, 11, 4, 0, 6]} -{"sent_id": [2, 1, 0, 7, 9, 6]} -{"sent_id": [1, 3, 2, 4, 11, 10]} -{"sent_id": [1, 2, 4, 11, 0, 15]} -{"sent_id": [1, 3, 4, 10, 2, 5]} -{"sent_id": [6, 3, 8, 1, 4, 2]} -{"sent_id": [2, 0, 3, 22, 17, 1]} -{"sent_id": [3, 0, 2, 9, 5, 10]} -{"sent_id": [3, 5, 1, 4, 0, 9]} -{"sent_id": [1, 2, 5, 11, 0, 3]} -{"sent_id": [1, 2, 4, 3, 10, 0]} -{"sent_id": [3, 1, 8, 2, 6, 0]} -{"sent_id": [1, 2, 4, 0, 8, 3]} -{"sent_id": [0, 3, 1, 2, 9, 13]} -{"sent_id": [1, 0, 3, 2, 16, 23]} -{"sent_id": [3, 2, 4, 9, 0, 1]} -{"sent_id": [3, 2, 0, 1, 5, 4]} -{"sent_id": [1, 0, 4, 2, 10, 3]} -{"sent_id": [4, 0, 2, 5, 1, 6]} -{"sent_id": [4, 3, 6, 5, 8, 9]} -{"sent_id": [0, 11, 3, 7, 2, 15]} -{"sent_id": [1, 0, 8, 4, 2, 5]} -{"sent_id": [5, 2, 3, 7, 6, 1]} -{"sent_id": [2, 1, 3, 0, 5, 6]} -{"sent_id": [1, 8, 2, 3, 12, 0]} -{"sent_id": [0, 13, 9, 11, 3, 5]} -{"sent_id": [2, 15, 17, 3, 5, 14]} -{"sent_id": [1, 5, 2, 4, 6, 7]} -{"sent_id": [0, 8, 1, 3, 5, 4]} -{"sent_id": [1, 0, 11, 2, 7, 8]} -{"sent_id": [0, 13, 2, 3, 5, 16]} -{"sent_id": [9, 4, 1, 10, 2, 12]} -{"sent_id": [0, 6, 1, 3, 2, 5]} -{"sent_id": [2, 1, 3, 8, 13, 5]} -{"sent_id": [0, 3, 1, 11, 14, 4]} -{"sent_id": [0, 2, 5, 1, 11, 3]} -{"sent_id": [1, 3, 2, 0, 5, 7]} -{"sent_id": [12, 1, 2, 0, 6, 4]} -{"sent_id": [4, 0, 1, 3, 2, 8]} -{"sent_id": [5, 0, 1, 3, 2, 14]} -{"sent_id": [1, 2, 8, 9, 3, 5]} -{"sent_id": [0, 4, 2, 1, 6, 7]} -{"sent_id": [7, 5, 4, 13, 6, 14]} -{"sent_id": [1, 6, 4, 5, 2, 0]} -{"sent_id": [1, 0, 3, 5, 2, 9]} -{"sent_id": [2, 3, 0, 4, 5, 8]} -{"sent_id": [1, 2, 7, 11, 5, 0]} -{"sent_id": [5, 12, 6, 1, 13, 7]} -{"sent_id": [3, 1, 11, 0, 12, 7]} -{"sent_id": [4, 6, 5, 2, 1, 14]} -{"sent_id": [1, 0, 3, 2, 10, 6]} -{"sent_id": [2, 1, 3, 7, 6, 0]} -{"sent_id": [0, 2, 3, 7, 6, 1]} -{"sent_id": [1, 2, 3, 8, 9, 0]} -{"sent_id": [1, 4, 2, 19, 0, 6]} -{"sent_id": [5, 6, 14, 10, 3, 13]} -{"sent_id": [1, 2, 8, 3, 10, 0]} -{"sent_id": [3, 2, 1, 12, 13, 10]} -{"sent_id": [1, 2, 10, 3, 14, 4]} -{"sent_id": [2, 11, 1, 0, 7, 8]} -{"sent_id": [3, 1, 16, 2, 0, 17]} -{"sent_id": [1, 3, 6, 5, 2, 7]} -{"sent_id": [1, 4, 0, 3, 8, 7]} -{"sent_id": [1, 3, 2, 7, 4, 12]} -{"sent_id": [0, 2, 3, 8, 1, 4]} -{"sent_id": [10, 4, 3, 5, 11, 6]} -{"sent_id": [14, 3, 10, 21, 7, 0]} -{"sent_id": [4, 3, 1, 2, 6, 0]} -{"sent_id": [3, 4, 1, 2, 5, 9]} -{"sent_id": [12, 2, 4, 13, 10, 3]} -{"sent_id": [0, 6, 7, 11, 1, 2]} -{"sent_id": [1, 2, 3, 9, 0, 6]} -{"sent_id": [3, 1, 7, 2, 0, 13]} -{"sent_id": [2, 17, 1, 6, 15, 14]} -{"sent_id": [1, 3, 4, 0, 2, 10]} -{"sent_id": [18, 5, 12, 11, 14, 9]} -{"sent_id": [3, 2, 1, 4, 8, 6]} -{"sent_id": [11, 3, 4, 0, 2, 6]} -{"sent_id": [2, 4, 1, 9, 3, 8]} -{"sent_id": [2, 8, 9, 11, 3, 1]} -{"sent_id": [1, 3, 2, 7, 4, 0]} -{"sent_id": [3, 2, 12, 1, 0, 5]} -{"sent_id": [1, 0, 2, 5, 7, 4]} -{"sent_id": [1, 3, 8, 2, 5, 4]} -{"sent_id": [5, 7, 17, 0, 25, 8]} -{"sent_id": [1, 2, 8, 7, 3, 6]} -{"sent_id": [5, 1, 4, 2, 7, 9]} -{"sent_id": [1, 0, 3, 5, 4, 2]} -{"sent_id": [3, 1, 2, 6, 10, 5]} -{"sent_id": [1, 2, 5, 3, 4, 11]} -{"sent_id": [2, 4, 1, 5, 3, 6]} -{"sent_id": [1, 2, 3, 8, 5, 9]} -{"sent_id": [4, 3, 1, 2, 9, 0]} -{"sent_id": [2, 1, 3, 8, 14, 7]} -{"sent_id": [0, 7, 1, 2, 6, 4]} -{"sent_id": [3, 13, 4, 2, 14, 0]} -{"sent_id": [2, 9, 0, 3, 1, 4]} -{"sent_id": [3, 5, 0, 1, 9, 7]} -{"sent_id": [1, 2, 5, 8, 3, 4]} -{"sent_id": [2, 9, 5, 3, 6, 0]} -{"sent_id": [3, 5, 2, 0, 1, 13]} -{"sent_id": [1, 5, 3, 4, 12, 2]} -{"sent_id": [2, 1, 4, 7, 6, 9]} -{"sent_id": [3, 2, 5, 8, 9, 10]} -{"sent_id": [3, 6, 1, 2, 4, 0]} -{"sent_id": [0, 1, 10, 2, 9, 7]} -{"sent_id": [3, 1, 2, 13, 12, 16]} -{"sent_id": [2, 1, 5, 4, 6, 7]} -{"sent_id": [12, 5, 3, 7, 16, 1]} -{"sent_id": [3, 4, 1, 8, 2, 10]} -{"sent_id": [3, 2, 1, 11, 0, 7]} -{"sent_id": [0, 3, 11, 6, 15, 7]} -{"sent_id": [2, 0, 4, 21, 1, 3]} -{"sent_id": [0, 2, 6, 1, 11, 4]} -{"sent_id": [0, 25, 1, 12, 24, 5]} -{"sent_id": [3, 7, 2, 1, 0, 4]} -{"sent_id": [1, 3, 12, 14, 13, 8]} -{"sent_id": [1, 2, 0, 6, 10, 3]} -{"sent_id": [0, 1, 14, 15, 3, 4]} -{"sent_id": [3, 4, 5, 11, 10, 2]} -{"sent_id": [1, 2, 4, 0, 5, 10]} -{"sent_id": [0, 3, 1, 5, 8, 12]} -{"sent_id": [9, 3, 0, 1, 5, 2]} -{"sent_id": [3, 4, 11, 1, 2, 0]} -{"sent_id": [3, 1, 2, 6, 7, 0]} -{"sent_id": [2, 1, 0, 6, 8, 14]} -{"sent_id": [2, 4, 1, 6, 12, 3]} -{"sent_id": [3, 4, 5, 7, 2, 1]} -{"sent_id": [1, 5, 2, 7, 12, 6]} -{"sent_id": [2, 3, 15, 9, 19, 5]} -{"sent_id": [3, 0, 5, 9, 1, 2]} -{"sent_id": [2, 1, 4, 3, 15, 0]} -{"sent_id": [0, 9, 10, 6, 18, 7]} -{"sent_id": [1, 3, 2, 5, 9, 10]} -{"sent_id": [2, 3, 1, 17, 16, 5]} -{"sent_id": [8, 3, 4, 15, 1, 6]} -{"sent_id": [0, 5, 1, 9, 10, 6]} -{"sent_id": [2, 13, 5, 8, 1, 7]} -{"sent_id": [2, 0, 4, 10, 5, 3]} -{"sent_id": [2, 1, 3, 4, 12, 8]} -{"sent_id": [2, 1, 6, 5, 8, 7]} -{"sent_id": [2, 0, 6, 4, 3, 1]} -{"sent_id": [3, 15, 1, 0, 2, 8]} -{"sent_id": [3, 8, 14, 4, 9, 6]} -{"sent_id": [3, 8, 1, 9, 6, 7]} -{"sent_id": [1, 3, 8, 0, 14, 5]} -{"sent_id": [0, 4, 5, 2, 1, 10]} -{"sent_id": [8, 15, 5, 3, 1, 7]} -{"sent_id": [1, 0, 7, 6, 3, 11]} -{"sent_id": [4, 2, 7, 14, 1, 5]} -{"sent_id": [4, 0, 18, 3, 2, 6]} -{"sent_id": [2, 4, 0, 1, 8, 13]} -{"sent_id": [1, 3, 2, 6, 14, 7]} -{"sent_id": [0, 12, 6, 1, 7, 3]} -{"sent_id": [3, 4, 2, 5, 8, 7]} -{"sent_id": [2, 1, 7, 0, 12, 4]} -{"sent_id": [3, 0, 1, 2, 12, 14]} -{"sent_id": [1, 2, 3, 19, 0, 7]} -{"sent_id": [3, 7, 1, 8, 9, 11]} -{"sent_id": [0, 4, 3, 1, 9, 2]} -{"sent_id": [13, 2, 1, 0, 4, 15]} -{"sent_id": [0, 2, 1, 12, 4, 5]} -{"sent_id": [0, 3, 1, 2, 4, 7]} -{"sent_id": [4, 3, 13, 1, 8, 7]} -{"sent_id": [2, 10, 0, 3, 1, 11]} -{"sent_id": [1, 10, 4, 0, 7, 2]} -{"sent_id": [2, 7, 16, 17, 1, 13]} -{"sent_id": [1, 2, 7, 9, 3, 4]} -{"sent_id": [1, 2, 0, 14, 3, 10]} -{"sent_id": [1, 2, 7, 0, 4, 5]} -{"sent_id": [0, 1, 3, 4, 9, 2]} -{"sent_id": [1, 12, 2, 10, 5, 11]} -{"sent_id": [15, 5, 4, 13, 9, 2]} -{"sent_id": [4, 5, 0, 13, 11, 3]} -{"sent_id": [2, 1, 9, 0, 8, 5]} -{"sent_id": [0, 3, 1, 9, 2, 13]} -{"sent_id": [9, 7, 3, 1, 0, 8]} -{"sent_id": [3, 2, 8, 4, 1, 5]} -{"sent_id": [1, 2, 3, 7, 0, 8]} -{"sent_id": [12, 0, 13, 2, 3, 1]} -{"sent_id": [3, 4, 12, 2, 6, 1]} -{"sent_id": [1, 8, 5, 4, 0, 11]} -{"sent_id": [0, 4, 11, 8, 12, 9]} -{"sent_id": [1, 3, 4, 2, 8, 6]} -{"sent_id": [1, 0, 14, 2, 4, 3]} -{"sent_id": [4, 5, 6, 1, 8, 2]} -{"sent_id": [1, 11, 3, 7, 5, 15]} -{"sent_id": [3, 2, 1, 0, 9, 10]} -{"sent_id": [0, 1, 3, 7, 6, 5]} -{"sent_id": [1, 3, 5, 2, 4, 6]} -{"sent_id": [2, 1, 0, 8, 7, 16]} -{"sent_id": [15, 14, 9, 8, 12, 7]} -{"sent_id": [3, 2, 1, 6, 5, 16]} -{"sent_id": [1, 7, 4, 6, 2, 0]} -{"sent_id": [3, 5, 8, 1, 0, 6]} -{"sent_id": [3, 1, 0, 12, 2, 13]} -{"sent_id": [8, 10, 3, 0, 11, 9]} -{"sent_id": [2, 7, 8, 9, 1, 11]} -{"sent_id": [4, 15, 0, 1, 3, 2]} -{"sent_id": [1, 0, 8, 10, 12, 11]} -{"sent_id": [3, 1, 0, 2, 7, 5]} -{"sent_id": [3, 4, 2, 5, 7, 8]} -{"sent_id": [1, 7, 4, 3, 2, 5]} -{"sent_id": [0, 4, 3, 2, 5, 18]} -{"sent_id": [1, 2, 3, 6, 17, 5]} -{"sent_id": [2, 0, 3, 1, 4, 5]} -{"sent_id": [0, 1, 3, 4, 7, 15]} -{"sent_id": [4, 8, 2, 3, 5, 1]} -{"sent_id": [2, 0, 3, 5, 4, 13]} -{"sent_id": [12, 0, 1, 3, 6, 2]} -{"sent_id": [2, 0, 7, 8, 10, 3]} -{"sent_id": [4, 1, 2, 5, 9, 6]} -{"sent_id": [3, 16, 0, 5, 4, 7]} -{"sent_id": [1, 2, 0, 6, 9, 4]} -{"sent_id": [4, 5, 6, 7, 3, 15]} -{"sent_id": [4, 0, 1, 8, 6, 2]} -{"sent_id": [3, 2, 13, 12, 5, 1]} -{"sent_id": [0, 3, 11, 8, 4, 9]} -{"sent_id": [1, 2, 16, 11, 7, 0]} -{"sent_id": [7, 1, 4, 0, 2, 13]} -{"sent_id": [3, 7, 1, 0, 2, 5]} -{"sent_id": [1, 3, 2, 14, 4, 0]} -{"sent_id": [1, 5, 2, 6, 10, 13]} -{"sent_id": [3, 0, 4, 9, 1, 13]} -{"sent_id": [2, 1, 5, 8, 7, 6]} -{"sent_id": [3, 0, 8, 4, 5, 9]} -{"sent_id": [5, 7, 8, 13, 11, 6]} -{"sent_id": [2, 1, 4, 13, 5, 0]} -{"sent_id": [5, 3, 0, 2, 13, 14]} -{"sent_id": [1, 2, 16, 3, 13, 5]} -{"sent_id": [1, 2, 3, 12, 0, 6]} -{"sent_id": [0, 1, 2, 8, 10, 9]} -{"sent_id": [2, 7, 1, 6, 8, 5]} -{"sent_id": [1, 5, 4, 3, 13, 6]} -{"sent_id": [0, 4, 14, 5, 2, 15]} -{"sent_id": [1, 2, 4, 3, 6, 13]} -{"sent_id": [2, 1, 6, 5, 7, 0]} -{"sent_id": [2, 1, 5, 10, 4, 3]} -{"sent_id": [0, 3, 1, 2, 9, 8]} -{"sent_id": [4, 16, 2, 1, 13, 3]} -{"sent_id": [1, 0, 2, 15, 4, 6]} -{"sent_id": [4, 1, 2, 5, 0, 9]} -{"sent_id": [0, 9, 1, 2, 10, 13]} -{"sent_id": [6, 2, 14, 12, 7, 11]} -{"sent_id": [1, 0, 2, 6, 5, 9]} -{"sent_id": [2, 4, 3, 7, 1, 8]} -{"sent_id": [3, 2, 4, 0, 1, 9]} -{"sent_id": [8, 2, 4, 3, 5, 0]} -{"sent_id": [2, 0, 10, 3, 1, 4]} -{"sent_id": [3, 2, 5, 7, 6, 19]} -{"sent_id": [0, 1, 8, 3, 11, 7]} -{"sent_id": [5, 2, 1, 6, 4, 8]} -{"sent_id": [1, 2, 0, 4, 3, 11]} -{"sent_id": [3, 2, 9, 11, 5, 7]} -{"sent_id": [2, 1, 0, 7, 4, 3]} -{"sent_id": [1, 4, 14, 0, 3, 10]} -{"sent_id": [12, 2, 0, 9, 1, 6]} -{"sent_id": [2, 3, 5, 15, 1, 14]} -{"sent_id": [0, 5, 10, 1, 2, 6]} -{"sent_id": [1, 11, 0, 3, 2, 10]} -{"sent_id": [2, 6, 4, 5, 3, 12]} -{"sent_id": [1, 3, 4, 12, 2, 5]} -{"sent_id": [5, 2, 4, 1, 3, 17]} -{"sent_id": [3, 1, 2, 0, 5, 11]} -{"sent_id": [1, 0, 7, 6, 5, 2]} -{"sent_id": [3, 4, 1, 0, 5, 2]} -{"sent_id": [18, 2, 3, 5, 10, 6]} -{"sent_id": [5, 2, 1, 4, 3, 0]} -{"sent_id": [1, 2, 5, 13, 10, 11]} -{"sent_id": [2, 4, 1, 6, 9, 3]} -{"sent_id": [1, 2, 9, 7, 8, 5]} -{"sent_id": [2, 1, 5, 6, 4, 11]} -{"sent_id": [4, 5, 1, 7, 2, 3]} -{"sent_id": [3, 1, 5, 0, 4, 9]} -{"sent_id": [1, 2, 0, 3, 9, 15]} -{"sent_id": [2, 5, 3, 4, 0, 1]} -{"sent_id": [6, 1, 12, 2, 8, 7]} -{"sent_id": [5, 6, 0, 1, 3, 4]} -{"sent_id": [0, 2, 1, 4, 10, 3]} -{"sent_id": [4, 2, 3, 5, 1, 6]} -{"sent_id": [3, 1, 0, 2, 8, 14]} -{"sent_id": [1, 2, 0, 9, 3, 8]} -{"sent_id": [0, 2, 3, 4, 7, 10]} -{"sent_id": [2, 3, 6, 0, 1, 9]} -{"sent_id": [1, 2, 3, 10, 7, 6]} -{"sent_id": [5, 4, 14, 6, 1, 15]} -{"sent_id": [3, 1, 2, 11, 5, 14]} -{"sent_id": [3, 2, 1, 4, 6, 5]} -{"sent_id": [0, 2, 1, 4, 3]} -{"sent_id": [1, 5, 4, 11, 2, 3]} -{"sent_id": [15, 4, 2, 3, 7, 5]} -{"sent_id": [1, 3, 2, 4, 6, 5]} -{"sent_id": [2, 3, 6, 16, 5, 18]} -{"sent_id": [5, 4, 15, 1, 10, 0]} -{"sent_id": [6, 19, 2, 3, 8, 4]} -{"sent_id": [4, 0, 1, 3, 2, 5]} -{"sent_id": [3, 1, 16, 2, 10, 15]} -{"sent_id": [3, 1, 2, 13, 4, 11]} -{"sent_id": [5, 1, 6, 7, 12, 2]} -{"sent_id": [1, 3, 10, 13, 17, 2]} -{"sent_id": [4, 2, 3, 11, 0, 1]} -{"sent_id": [3, 2, 6, 1, 0, 5]} -{"sent_id": [4, 3, 2, 0, 1, 13]} -{"sent_id": [0, 1, 3, 4, 2, 8]} -{"sent_id": [8, 1, 9, 11, 0, 4]} -{"sent_id": [0, 2, 16, 10, 15, 7]} -{"sent_id": [3, 1, 11, 2, 4, 0]} -{"sent_id": [2, 3, 17, 11, 1, 6]} -{"sent_id": [3, 1, 2, 5, 8, 4]} -{"sent_id": [4, 2, 16, 0, 9, 1]} -{"sent_id": [0, 4, 1, 9, 15, 5]} -{"sent_id": [4, 10, 1, 0, 7, 5]} -{"sent_id": [3, 2, 4, 1, 0, 5]} -{"sent_id": [1, 4, 0, 3, 10, 2]} -{"sent_id": [4, 0, 1, 2, 5, 11]} -{"sent_id": [4, 2, 3, 1, 8, 7]} -{"sent_id": [5, 4, 8, 3, 11, 7]} -{"sent_id": [3, 4, 0, 5, 1, 2]} -{"sent_id": [0, 3, 2, 11, 5, 8]} -{"sent_id": [1, 2, 3, 6, 5, 7]} -{"sent_id": [1, 2, 5, 8, 6, 0]} -{"sent_id": [2, 9, 1, 6, 3, 5]} -{"sent_id": [7, 8, 5, 14, 13, 4]} -{"sent_id": [3, 9, 2, 1, 16, 10]} -{"sent_id": [4, 2, 5, 6, 10, 8]} -{"sent_id": [5, 3, 2, 1, 6, 7]} -{"sent_id": [3, 4, 1, 0, 11, 12]} -{"sent_id": [0, 3, 1, 10, 2, 4]} -{"sent_id": [2, 1, 5, 13, 6, 7]} -{"sent_id": [1, 2, 5, 4, 13, 0]} -{"sent_id": [1, 4, 0, 5, 2, 8]} -{"sent_id": [1, 2, 5, 6, 7, 8]} -{"sent_id": [3, 4, 13, 2, 1, 11]} -{"sent_id": [0, 3, 1, 10, 4, 8]} -{"sent_id": [2, 1, 0, 3, 12, 18]} -{"sent_id": [0, 2, 1, 3, 5, 4]} -{"sent_id": [1, 3, 2, 6, 4, 5]} -{"sent_id": [0, 1, 10, 7, 12, 3]} -{"sent_id": [1, 2, 13, 0, 14, 5]} -{"sent_id": [5, 7, 2, 4, 1, 17]} -{"sent_id": [1, 0, 2, 8, 6, 10]} -{"sent_id": [2, 4, 3, 1, 9, 6]} -{"sent_id": [0, 1, 2, 4, 5, 14]} -{"sent_id": [3, 4, 0, 16, 1, 5]} -{"sent_id": [1, 2, 5, 8, 15, 7]} -{"sent_id": [6, 8, 7, 9, 19, 16]} -{"sent_id": [1, 3, 4, 13, 11, 5]} -{"sent_id": [4, 6, 5, 17, 1, 18]} -{"sent_id": [2, 13, 3, 14, 0, 4]} -{"sent_id": [1, 2, 0, 5, 15, 14]} -{"sent_id": [2, 3, 1, 6, 12, 0]} -{"sent_id": [11, 2, 20, 22, 18, 21]} -{"sent_id": [2, 3, 8, 1, 4, 7]} -{"sent_id": [0, 1, 14, 6, 2, 10]} -{"sent_id": [0, 1, 16, 4, 5, 3]} -{"sent_id": [5, 4, 0, 7, 1, 2]} -{"sent_id": [0, 1, 16, 2, 4, 15]} -{"sent_id": [4, 5, 2, 3, 1, 12]} -{"sent_id": [7, 10, 6, 5, 3, 4]} -{"sent_id": [3, 5, 6, 18, 13, 4]} -{"sent_id": [0, 2, 9, 1, 4, 3]} -{"sent_id": [1, 12, 2, 13, 0, 7]} -{"sent_id": [3, 2, 0, 1, 12, 9]} -{"sent_id": [1, 11, 3, 4, 2, 9]} -{"sent_id": [9, 1, 2, 0, 15, 6]} -{"sent_id": [8, 7, 1, 6, 2, 4]} -{"sent_id": [3, 10, 9, 1, 4, 2]} -{"sent_id": [1, 2, 6, 3, 4, 5]} -{"sent_id": [1, 0, 5, 4, 8, 2]} -{"sent_id": [3, 0, 1, 22, 6, 2]} -{"sent_id": [3, 12, 10, 19, 5, 13]} -{"sent_id": [4, 6, 15, 12, 16, 0]} -{"sent_id": [3, 5, 4, 8, 9, 1]} -{"sent_id": [3, 1, 4, 10, 2, 6]} -{"sent_id": [1, 2, 3, 9, 4, 8]} -{"sent_id": [3, 1, 2, 5, 14, 0]} -{"sent_id": [0, 3, 11, 5, 2, 10]} -{"sent_id": [0, 2, 3, 5, 4, 13]} -{"sent_id": [6, 0, 5, 2, 3, 10]} -{"sent_id": [6, 2, 1, 5, 16, 0]} -{"sent_id": [0, 5, 1, 15, 8, 3]} -{"sent_id": [1, 2, 0, 4, 10, 8]} -{"sent_id": [2, 9, 8, 4, 10, 5]} -{"sent_id": [3, 1, 2, 6, 10, 8]} -{"sent_id": [1, 3, 6, 0, 4, 2]} -{"sent_id": [4, 0, 2, 8, 9, 3]} -{"sent_id": [3, 0, 9, 14, 2, 4]} -{"sent_id": [14, 12, 11, 2, 8, 13]} -{"sent_id": [6, 1, 8, 7, 21, 13]} -{"sent_id": [0, 4, 3, 5, 1, 13]} -{"sent_id": [0, 1, 2]} -{"sent_id": [1, 14, 13, 0, 2, 3]} -{"sent_id": [5, 4, 3, 1, 0, 11]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [13, 6, 4, 2, 1, 0]} -{"sent_id": [1, 2, 10, 3, 0, 4]} -{"sent_id": [1, 4, 2, 3, 8, 12]} -{"sent_id": [2, 1, 4, 12, 3, 10]} -{"sent_id": [1, 3, 8, 2, 10, 0]} -{"sent_id": [0, 8, 2, 16, 12, 4]} -{"sent_id": [4, 1, 13, 3, 2, 9]} -{"sent_id": [3, 0, 1, 7, 5, 6]} -{"sent_id": [3, 1, 0, 8, 2, 9]} -{"sent_id": [1, 5, 0, 2, 4, 13]} -{"sent_id": [3, 11, 1, 12, 0, 5]} -{"sent_id": [6, 0, 2, 1, 5, 3]} -{"sent_id": [8, 10, 11, 15, 17, 16]} -{"sent_id": [1, 2, 4, 8, 0, 3]} -{"sent_id": [3, 2, 1, 0, 10, 12]} -{"sent_id": [4, 1, 0, 6, 12, 2]} -{"sent_id": [3, 11, 10, 1, 2, 0]} -{"sent_id": [3, 6, 1, 2, 11, 9]} -{"sent_id": [7, 3, 6, 2, 10, 4]} -{"sent_id": [3, 0, 2, 4, 8, 1]} -{"sent_id": [8, 7, 3, 12, 2, 9]} -{"sent_id": [2, 4, 8, 0, 5, 12]} -{"sent_id": [3, 1, 2, 8, 0, 6]} -{"sent_id": [1, 14, 2, 3, 4, 5]} -{"sent_id": [1, 3, 2, 8, 0, 7]} -{"sent_id": [1, 3, 5, 14, 2, 0]} -{"sent_id": [3, 0, 5, 7, 4, 1]} -{"sent_id": [3, 1, 2, 4, 6, 9]} -{"sent_id": [1, 5, 3, 2, 6, 4]} -{"sent_id": [1, 2, 0, 3, 11, 4]} -{"sent_id": [3, 1, 0, 6, 2, 10]} -{"sent_id": [1, 2, 4, 16, 11, 0]} -{"sent_id": [3, 2, 1, 5, 4, 13]} -{"sent_id": [2, 12, 3, 4, 6, 1]} -{"sent_id": [2, 1, 3, 0, 11, 5]} -{"sent_id": [3, 0, 11, 1, 2, 8]} -{"sent_id": [6, 2, 1, 7, 4, 5]} -{"sent_id": [2, 7, 12, 8, 9, 6]} -{"sent_id": [1, 2, 4, 13, 8, 0]} -{"sent_id": [0, 3, 4, 2, 1, 6]} -{"sent_id": [2, 0, 1, 11, 4, 3]} -{"sent_id": [2, 5, 0, 1, 6, 7]} -{"sent_id": [5, 9, 15, 6, 11, 7]} -{"sent_id": [1, 4, 0, 2, 3, 7]} -{"sent_id": [3, 2, 6, 10, 9, 8]} -{"sent_id": [1, 7, 3, 0, 8, 2]} -{"sent_id": [1, 2, 5, 0, 3, 4]} -{"sent_id": [3, 2, 1, 4, 5, 10]} -{"sent_id": [3, 18, 9, 0, 8, 4]} -{"sent_id": [0, 4, 3, 5, 1, 2]} -{"sent_id": [2, 3, 1, 9, 5, 6]} -{"sent_id": [1, 5, 2, 6, 0, 7]} -{"sent_id": [17, 1, 0, 2, 3, 11]} -{"sent_id": [3, 2, 5, 1, 7, 0]} -{"sent_id": [3, 0, 1, 2, 5, 16]} -{"sent_id": [1, 5, 17, 2, 6, 7]} -{"sent_id": [6, 1, 7, 17, 13, 10]} -{"sent_id": [3, 4, 7, 2, 1, 5]} -{"sent_id": [2, 0, 3, 4, 8, 1]} -{"sent_id": [1, 0, 4, 2, 3, 5]} -{"sent_id": [1, 2, 6, 4, 3, 7]} -{"sent_id": [0, 1, 2, 18, 12, 3]} -{"sent_id": [13, 2, 4, 7, 3, 1]} -{"sent_id": [2, 1, 0, 3, 10, 8]} -{"sent_id": [3, 9, 5, 8, 4, 6]} -{"sent_id": [2, 5, 3, 14, 15, 8]} -{"sent_id": [2, 1, 4, 3, 0, 9]} -{"sent_id": [1, 3, 9, 4, 2, 17]} -{"sent_id": [3, 5, 2, 4, 0, 6]} -{"sent_id": [0, 3, 2, 1, 8, 4]} -{"sent_id": [1, 2, 0, 14, 12, 4]} -{"sent_id": [2, 1, 7, 3, 10, 8]} -{"sent_id": [1, 6, 4, 2, 3, 13]} -{"sent_id": [2, 7, 5, 1, 6, 0]} -{"sent_id": [1, 6, 3, 4, 5, 2]} -{"sent_id": [2, 4, 1, 3, 5, 9]} -{"sent_id": [8, 6, 1, 5, 3, 2]} -{"sent_id": [1, 2, 0, 9, 7, 8]} -{"sent_id": [3, 0, 7, 1, 2, 4]} -{"sent_id": [3, 16, 1, 8, 13, 4]} -{"sent_id": [1, 5, 3, 6, 2, 7]} -{"sent_id": [2, 1, 4, 8, 5, 7]} -{"sent_id": [0, 2, 6, 8, 13, 4]} -{"sent_id": [1, 0, 3, 2, 4, 5]} -{"sent_id": [0, 6, 3, 2, 4, 14]} -{"sent_id": [4, 3, 6, 2, 9, 8]} -{"sent_id": [13, 4, 1, 2, 7, 3]} -{"sent_id": [1, 5, 0, 4, 2, 3]} -{"sent_id": [17, 3, 0, 1, 2, 7]} -{"sent_id": [1, 0, 6, 16, 2, 15]} -{"sent_id": [4, 1, 2, 0, 5, 3]} -{"sent_id": [3, 19, 10, 6, 20, 13]} -{"sent_id": [1, 4, 2, 3, 5, 6]} -{"sent_id": [1, 0, 3, 19, 2, 10]} -{"sent_id": [9, 3, 1, 0, 4, 2]} -{"sent_id": [3, 2, 1, 4, 0, 7]} -{"sent_id": [1, 4, 3, 7, 0, 14]} -{"sent_id": [0, 1, 12, 2, 4, 5]} -{"sent_id": [1, 2, 7, 9, 3, 4]} -{"sent_id": [9, 4, 3, 8, 7, 10]} -{"sent_id": [2, 6, 4, 15, 1, 5]} -{"sent_id": [2, 1, 0, 16, 11, 15]} -{"sent_id": [1, 2, 12, 0, 9, 6]} -{"sent_id": [0, 2, 3, 5, 7, 19]} -{"sent_id": [7, 15, 6, 8, 0, 10]} -{"sent_id": [2, 0, 3, 10, 11, 5]} -{"sent_id": [1, 2, 4, 12, 6, 5]} -{"sent_id": [0, 1, 3, 2, 11, 8]} -{"sent_id": [3, 0, 5, 2, 9, 7]} -{"sent_id": [7, 8, 10, 0, 12, 3]} -{"sent_id": [1, 2, 4, 7, 5, 3]} -{"sent_id": [1, 3, 4, 2, 0, 14]} -{"sent_id": [3, 2, 1, 7, 0, 10]} -{"sent_id": [1, 2, 3, 13, 12, 14]} -{"sent_id": [10, 0, 11, 12, 6, 5]} -{"sent_id": [3, 0, 1, 14, 5, 2]} -{"sent_id": [3, 5, 9, 4, 7, 2]} -{"sent_id": [13, 1, 9, 3, 5, 2]} -{"sent_id": [6, 2, 1, 0, 12, 11]} -{"sent_id": [2, 4, 3, 0, 6, 9]} -{"sent_id": [2, 3, 4, 6, 8, 9]} -{"sent_id": [2, 3, 4, 5, 16, 8]} -{"sent_id": [1, 7, 6, 2, 0, 9]} -{"sent_id": [0, 1, 3, 2, 10, 5]} -{"sent_id": [1, 0, 2, 11, 12, 5]} -{"sent_id": [1, 2, 5, 10, 4, 6]} -{"sent_id": [4, 3, 1, 8, 18, 21]} -{"sent_id": [0, 2, 4, 3, 11, 8]} -{"sent_id": [4, 1, 9, 0, 2, 8]} -{"sent_id": [0, 17, 2, 6, 1, 13]} -{"sent_id": [0, 3, 5, 4, 7, 1]} -{"sent_id": [4, 10, 1, 3, 11, 5]} -{"sent_id": [2, 1, 11, 3, 9, 6]} -{"sent_id": [5, 3, 6, 1, 4, 10]} -{"sent_id": [7, 4, 10, 11, 3, 2]} -{"sent_id": [1, 4, 3, 0, 2, 16]} -{"sent_id": [3, 2, 1, 14, 4, 8]} -{"sent_id": [2, 1, 4, 14, 6, 10]} -{"sent_id": [0, 1, 4, 11, 2, 5]} -{"sent_id": [3, 4, 12, 2, 5, 9]} -{"sent_id": [4, 3, 6, 5, 16, 15]} -{"sent_id": [17, 3, 8, 9, 0, 16]} -{"sent_id": [0, 14, 2, 7, 3, 9]} -{"sent_id": [1, 5, 6, 3, 4, 17]} -{"sent_id": [3, 4, 2, 1, 5, 6]} -{"sent_id": [3, 15, 8, 9, 7, 10]} -{"sent_id": [2, 0, 1, 3, 8, 5]} -{"sent_id": [2, 0, 4, 6, 5, 1]} -{"sent_id": [2, 1, 4, 3, 17, 18]} -{"sent_id": [0, 4, 1, 5, 2, 6]} -{"sent_id": [2, 1, 3, 4, 12, 5]} -{"sent_id": [1, 7, 2, 0, 5, 16]} -{"sent_id": [4, 1, 3, 5, 2, 0]} -{"sent_id": [1, 2, 8, 15, 0, 3]} -{"sent_id": [3, 5, 4, 0, 1, 2]} -{"sent_id": [3, 2, 0, 4, 11, 8]} -{"sent_id": [5, 6, 1, 4, 2, 3]} -{"sent_id": [3, 1, 0, 2, 4, 16]} -{"sent_id": [4, 1, 2, 8, 5, 3]} -{"sent_id": [2, 1, 5, 7, 0, 3]} -{"sent_id": [2, 6, 16, 9, 0, 8]} -{"sent_id": [0, 9, 12, 1, 2, 8]} -{"sent_id": [1, 4, 2, 12, 5, 3]} -{"sent_id": [3, 8, 1, 2, 14, 5]} -{"sent_id": [2, 6, 5, 12, 4, 0]} -{"sent_id": [5, 3, 0, 4, 12, 1]} -{"sent_id": [2, 0, 3, 4, 6, 5]} -{"sent_id": [0, 8, 3, 4, 5, 1]} -{"sent_id": [5, 3, 10, 0, 6, 16]} -{"sent_id": [1, 10, 4, 5, 2, 9]} -{"sent_id": [2, 1, 0, 3, 5, 12]} -{"sent_id": [0, 1, 2, 6, 3, 4]} -{"sent_id": [1, 2, 5, 4, 0, 11]} -{"sent_id": [10, 5, 1, 4, 9, 0]} -{"sent_id": [0, 2, 8, 11, 7, 6]} -{"sent_id": [3, 11, 0, 1, 14, 4]} -{"sent_id": [3, 1, 5, 8, 2, 0]} -{"sent_id": [4, 3, 2, 5, 6, 10]} -{"sent_id": [2, 1, 5, 4, 3, 12]} -{"sent_id": [1, 3, 6, 2, 14, 13]} -{"sent_id": [3, 8, 2, 7, 4, 14]} -{"sent_id": [1, 7, 2, 0, 3, 11]} -{"sent_id": [0, 1, 9, 2, 3, 6]} -{"sent_id": [2, 3, 1, 9, 0, 4]} -{"sent_id": [2, 1, 4, 3, 12, 5]} -{"sent_id": [1, 5, 9, 2, 0, 3]} -{"sent_id": [2, 0, 5, 3, 1, 4]} -{"sent_id": [3, 1, 2, 0, 11, 13]} -{"sent_id": [2, 3, 1, 10, 9, 12]} -{"sent_id": [1, 4, 2, 9, 3, 11]} -{"sent_id": [0, 3, 6, 4, 2, 1]} -{"sent_id": [1, 0, 3, 7, 8, 5]} -{"sent_id": [1, 2, 9, 3, 18, 5]} -{"sent_id": [3, 15, 2, 11, 12, 4]} -{"sent_id": [0, 1, 3, 2, 4, 5]} -{"sent_id": [6, 1, 0, 7, 15, 14]} -{"sent_id": [0, 3, 5, 4, 2, 7]} -{"sent_id": [2, 5, 16, 3, 12, 11]} -{"sent_id": [5, 13, 11, 1, 7, 6]} -{"sent_id": [2, 1, 0, 11, 15, 8]} -{"sent_id": [1, 2, 3, 4, 11, 7]} -{"sent_id": [1, 2, 4, 3, 11, 6]} -{"sent_id": [1, 2, 0, 11, 8, 3]} -{"sent_id": [1, 2, 3, 14, 9, 0]} -{"sent_id": [3, 4, 1, 2, 5, 6]} -{"sent_id": [2, 1, 4, 3, 7, 6]} -{"sent_id": [5, 14, 4, 2, 11, 1]} -{"sent_id": [3, 2, 1, 5, 10, 6]} -{"sent_id": [0, 9, 1, 6, 7, 12]} -{"sent_id": [1, 2, 3, 5, 8, 4]} -{"sent_id": [3, 1, 2, 8, 9, 0]} -{"sent_id": [4, 1, 3, 5, 2, 7]} -{"sent_id": [1, 5, 2, 4, 0, 13]} -{"sent_id": [0, 2, 18, 5, 1, 6]} -{"sent_id": [1, 2, 0, 6, 4, 3]} -{"sent_id": [2, 0, 12, 3, 4, 9]} -{"sent_id": [2, 0, 3, 7, 4, 1]} -{"sent_id": [3, 4, 9, 8, 0, 2]} -{"sent_id": [1, 2, 3, 4, 9, 10]} -{"sent_id": [2, 4, 1, 6, 8, 10]} -{"sent_id": [0, 9, 2, 3, 4, 1]} -{"sent_id": [2, 1, 6, 0, 8, 14]} -{"sent_id": [1, 4, 5, 2, 0, 3]} -{"sent_id": [3, 0, 4, 8, 6, 2]} -{"sent_id": [2, 3, 11, 1, 5, 14]} -{"sent_id": [3, 0, 2, 4, 5, 6]} -{"sent_id": [3, 1, 0, 2, 4, 12]} -{"sent_id": [3, 2, 4, 14, 0, 1]} -{"sent_id": [1, 2, 0, 9, 8, 3]} -{"sent_id": [0, 1, 6, 11, 7, 9]} -{"sent_id": [3, 1, 4, 10, 2, 0]} -{"sent_id": [0, 1, 10, 3, 2, 11]} -{"sent_id": [2, 0, 3, 4, 7, 1]} -{"sent_id": [1, 3, 0, 4, 7, 6]} -{"sent_id": [0, 3, 4, 1, 11, 12]} -{"sent_id": [3, 1, 4, 2, 0, 13]} -{"sent_id": [2, 1, 5, 4, 7, 6]} -{"sent_id": [3, 2, 1, 5, 0, 6]} -{"sent_id": [2, 1, 4, 5, 3, 0]} -{"sent_id": [4, 3, 2, 5, 7, 11]} -{"sent_id": [0, 7, 2, 14, 19, 15]} -{"sent_id": [5, 9, 7, 6, 8, 13]} -{"sent_id": [2, 1, 3, 13, 7, 4]} -{"sent_id": [2, 12, 6, 3, 0, 1]} -{"sent_id": [3, 0, 12, 4, 1, 2]} -{"sent_id": [2, 6, 1, 5, 4, 7]} -{"sent_id": [2, 3, 6, 7, 4, 13]} -{"sent_id": [7, 8, 0, 6, 5, 1]} -{"sent_id": [3, 1, 7, 0, 2, 9]} -{"sent_id": [0, 1, 3, 2, 5, 8]} -{"sent_id": [7, 1, 3, 2, 0, 9]} -{"sent_id": [1, 2, 0, 8, 3, 6]} -{"sent_id": [4, 1, 18, 9, 14, 5]} -{"sent_id": [1, 3, 4, 2, 7, 15]} -{"sent_id": [14, 0, 4, 6, 1, 11]} -{"sent_id": [4, 0, 1, 11, 2, 3]} -{"sent_id": [1, 4, 2, 3, 5, 10]} -{"sent_id": [5, 1, 2, 0, 4, 3]} -{"sent_id": [4, 13, 10, 18, 3, 17]} -{"sent_id": [3, 0, 19, 1, 11, 2]} -{"sent_id": [1, 2, 7, 3, 6, 8]} -{"sent_id": [3, 4, 0, 2, 1, 12]} -{"sent_id": [1, 3, 4, 7, 2, 0]} -{"sent_id": [1, 3, 2, 8, 5, 6]} -{"sent_id": [0, 5, 3, 13, 4, 2]} -{"sent_id": [1, 2, 3, 7, 6, 10]} -{"sent_id": [8, 10, 4, 7, 2, 1]} -{"sent_id": [1, 2, 3, 0, 8, 6]} -{"sent_id": [0, 1, 2, 11, 8, 5]} -{"sent_id": [1, 2, 4, 0, 3, 7]} -{"sent_id": [1, 7, 3, 2, 4, 0]} -{"sent_id": [2, 0, 3, 5, 6, 1]} -{"sent_id": [3, 2, 5, 6, 10, 11]} -{"sent_id": [3, 2, 14, 7, 0, 15]} -{"sent_id": [0, 2, 6, 8, 5, 1]} -{"sent_id": [1, 0, 2, 3, 7, 4]} -{"sent_id": [4, 2, 6, 7, 9, 1]} -{"sent_id": [2, 11, 3, 7, 6, 4]} -{"sent_id": [3, 4, 14, 1, 13, 0]} -{"sent_id": [3, 6, 5, 2, 12, 9]} -{"sent_id": [1, 2, 4, 0, 3, 6]} -{"sent_id": [1, 4, 2, 11, 10, 6]} -{"sent_id": [0, 2, 3, 5, 4, 7]} -{"sent_id": [1, 0, 6, 3, 9, 2]} -{"sent_id": [4, 1, 8, 11, 7, 3]} -{"sent_id": [3, 1, 8, 0, 9, 2]} -{"sent_id": [0, 10, 11, 8, 9, 17]} -{"sent_id": [2, 1, 14, 5, 6, 3]} -{"sent_id": [2, 3, 1, 10, 0, 9]} -{"sent_id": [0, 4, 1, 10, 2, 5]} -{"sent_id": [4, 1, 5, 9, 8, 3]} -{"sent_id": [1, 5, 2, 3, 6, 0]} -{"sent_id": [0, 4, 3, 1, 2]} -{"sent_id": [0, 4, 5, 3, 1, 6]} -{"sent_id": [1, 2, 0, 13, 11, 12]} -{"sent_id": [1, 11, 6, 2, 4, 3]} -{"sent_id": [4, 11, 0, 3, 5, 2]} -{"sent_id": [2, 3, 0, 4, 7, 17]} -{"sent_id": [1, 2, 6, 7, 5, 9]} -{"sent_id": [1, 2, 3, 14, 4, 7]} -{"sent_id": [2, 9, 4, 0, 6, 10]} -{"sent_id": [2, 3, 7, 9, 14, 0]} -{"sent_id": [3, 1, 21, 2, 9, 0]} -{"sent_id": [15, 0, 1, 6, 5, 2]} -{"sent_id": [0, 5, 2, 8, 7, 6]} -{"sent_id": [2, 1, 4, 5, 3, 6]} -{"sent_id": [2, 1, 3, 4, 5, 7]} -{"sent_id": [0, 5, 1, 4, 3, 6]} -{"sent_id": [2, 3, 0, 4, 9, 5]} -{"sent_id": [3, 7, 18, 4, 2, 6]} -{"sent_id": [2, 4, 5, 0, 3, 6]} -{"sent_id": [3, 1, 12, 9, 10, 13]} -{"sent_id": [2, 4, 5, 1, 10, 9]} -{"sent_id": [0, 3, 2, 4, 1, 12]} -{"sent_id": [1, 2, 3, 11, 7, 12]} -{"sent_id": [12, 2, 1, 7, 6, 0]} -{"sent_id": [0, 2, 3, 1, 6, 4]} -{"sent_id": [1, 4, 2, 6, 0, 8]} -{"sent_id": [2, 1, 5, 6, 3, 0]} -{"sent_id": [1, 5, 4, 18, 6, 2]} -{"sent_id": [1, 2, 3, 4, 0, 5]} -{"sent_id": [1, 5, 6, 11, 2, 10]} -{"sent_id": [1, 8, 2, 7, 4, 6]} -{"sent_id": [2, 1, 16, 15, 3, 0]} -{"sent_id": [1, 2, 0, 7, 4, 11]} -{"sent_id": [0, 3, 11, 2, 9, 7]} -{"sent_id": [2, 3, 6, 9, 1, 16]} -{"sent_id": [2, 1, 4, 0, 3, 9]} -{"sent_id": [5, 9, 6, 3, 7, 8]} -{"sent_id": [1, 4, 2, 9, 0, 3]} -{"sent_id": [2, 3, 0, 6, 4, 7]} -{"sent_id": [3, 1, 10, 2, 4, 8]} -{"sent_id": [1, 2, 3, 5, 9, 4]} -{"sent_id": [13, 0, 6, 3, 5, 4]} -{"sent_id": [1, 2, 0, 4, 14, 9]} -{"sent_id": [1, 13, 2, 8, 0, 11]} -{"sent_id": [4, 12, 1, 5, 3, 0]} -{"sent_id": [2, 1, 5, 4, 15, 9]} -{"sent_id": [0, 3, 1, 5, 7, 2]} -{"sent_id": [2, 7, 17, 6, 8, 5]} -{"sent_id": [1, 2, 5, 14, 4, 3]} -{"sent_id": [3, 11, 4, 5, 2, 1]} -{"sent_id": [1, 2, 0, 7, 3, 8]} -{"sent_id": [4, 0, 1, 2, 10, 8]} -{"sent_id": [1, 4, 2, 0, 7, 3]} -{"sent_id": [1, 3, 5, 4, 10, 6]} -{"sent_id": [3, 1, 2, 0, 8, 11]} -{"sent_id": [5, 4, 6, 0, 3, 1]} -{"sent_id": [6, 0, 1, 13, 3, 2]} -{"sent_id": [19, 10, 21, 20, 3, 0]} -{"sent_id": [0, 3, 7, 10, 6, 5]} -{"sent_id": [9, 1, 2, 3, 0, 13]} -{"sent_id": [1, 0, 2, 4, 6, 9]} -{"sent_id": [0, 3, 4, 14, 2, 13]} -{"sent_id": [3, 0, 7, 1, 8, 6]} -{"sent_id": [2, 0, 3, 5, 4, 8]} -{"sent_id": [1, 5, 2, 4, 8, 0]} -{"sent_id": [3, 5, 17, 1, 6, 2]} -{"sent_id": [0, 3, 12, 1, 2, 4]} -{"sent_id": [4, 1, 0, 2, 11, 10]} -{"sent_id": [6, 3, 5, 4, 7, 2]} -{"sent_id": [0, 3, 1, 4, 12, 19]} -{"sent_id": [4, 0, 3, 21, 5, 2]} -{"sent_id": [2, 1, 3, 10, 9, 4]} -{"sent_id": [1, 2, 0, 7, 6, 5]} -{"sent_id": [1, 3, 2, 9, 0, 4]} -{"sent_id": [1, 2, 4, 3, 5, 7]} -{"sent_id": [2, 4, 14, 9, 8, 3]} -{"sent_id": [3, 1, 4, 2, 6, 7]} -{"sent_id": [1, 3, 4, 0, 2, 7]} -{"sent_id": [2, 0, 4, 3, 5, 6]} -{"sent_id": [1, 0, 3, 6, 10, 2]} -{"sent_id": [0, 17, 2, 1, 18, 3]} -{"sent_id": [4, 6, 2, 3, 1, 11]} -{"sent_id": [4, 3, 1, 2, 5, 7]} -{"sent_id": [7, 8, 6, 5, 3, 4]} -{"sent_id": [9, 1, 3, 0, 5, 2]} -{"sent_id": [1, 2, 0, 7, 4, 3]} -{"sent_id": [1, 2, 4, 7, 8, 10]} -{"sent_id": [4, 2, 1, 8, 0, 5]} -{"sent_id": [10, 3, 1, 0, 2, 4]} -{"sent_id": [4, 5, 2, 3, 7, 8]} -{"sent_id": [1, 2, 7, 3, 5, 0]} -{"sent_id": [1, 8, 9, 6, 4, 5]} -{"sent_id": [8, 2, 1, 4, 9, 14]} -{"sent_id": [3, 9, 2, 1, 0, 4]} -{"sent_id": [9, 3, 8, 4, 1, 2]} -{"sent_id": [0, 2, 3, 4, 14, 1]} -{"sent_id": [2, 3, 4, 11, 0, 1]} -{"sent_id": [9, 11, 2, 3, 6, 7]} -{"sent_id": [0, 4, 10, 2, 3, 1]} -{"sent_id": [1, 2, 8, 4, 3, 0]} -{"sent_id": [3, 2, 1, 5, 6, 7]} -{"sent_id": [2, 1, 3, 8, 0, 13]} -{"sent_id": [2, 0, 1, 11, 8, 18]} -{"sent_id": [1, 2, 3, 5, 6, 4]} -{"sent_id": [2, 3, 0, 1, 5, 7]} -{"sent_id": [6, 5, 10, 1, 7, 0]} -{"sent_id": [3, 2, 1, 11, 4, 8]} -{"sent_id": [4, 1, 3, 14, 9, 5]} -{"sent_id": [0, 2, 5, 4, 3, 8]} -{"sent_id": [1, 3, 0, 5, 2, 4]} -{"sent_id": [3, 2, 0, 1, 7, 8]} -{"sent_id": [1, 5, 2, 8, 3, 4]} -{"sent_id": [3, 4, 9, 12, 11, 10]} -{"sent_id": [5, 0, 10, 1, 2, 8]} -{"sent_id": [0, 1, 3, 4, 2, 12]} -{"sent_id": [4, 10, 3, 9, 6, 2]} -{"sent_id": [4, 5, 0, 6, 8, 2]} -{"sent_id": [1, 2, 4, 5, 6, 0]} -{"sent_id": [3, 9, 2, 1, 0, 5]} -{"sent_id": [1, 9, 6, 2, 8, 10]} -{"sent_id": [4, 3, 2, 7, 10, 9]} -{"sent_id": [0, 2, 3, 5, 4, 1]} -{"sent_id": [1, 3, 2, 5, 12, 6]} -{"sent_id": [1, 2, 3, 4, 0, 7]} -{"sent_id": [5, 0, 8, 1, 11, 2]} -{"sent_id": [2, 3, 5, 6, 13, 16]} -{"sent_id": [1, 6, 0, 2, 4, 5]} -{"sent_id": [6, 23, 3, 9, 4, 8]} -{"sent_id": [1, 2, 5, 3, 6, 0]} -{"sent_id": [1, 2, 0, 6, 18, 3]} -{"sent_id": [1, 13, 0, 2, 15, 7]} -{"sent_id": [10, 2, 1, 0, 14, 16]} -{"sent_id": [2, 3, 4, 5, 0, 1]} -{"sent_id": [8, 0, 13, 4, 9, 5]} -{"sent_id": [1, 2, 0, 13, 4, 7]} -{"sent_id": [1, 2, 13, 3, 11, 0]} -{"sent_id": [3, 1, 4, 7, 5, 11]} -{"sent_id": [4, 8, 6, 3, 18, 5]} -{"sent_id": [6, 15, 1, 7, 0, 2]} -{"sent_id": [7, 8, 1, 2, 5, 0]} -{"sent_id": [2, 1, 4, 11, 6, 10]} -{"sent_id": [2, 1, 5, 6, 9, 15]} -{"sent_id": [2, 1, 8, 6, 10, 3]} -{"sent_id": [1, 2, 6, 4, 10, 5]} -{"sent_id": [4, 1, 7, 6, 0, 8]} -{"sent_id": [3, 4, 5, 10, 7, 8]} -{"sent_id": [5, 1, 0, 3, 13, 16]} -{"sent_id": [13, 0, 9, 5, 6, 12]} -{"sent_id": [1, 4, 2, 0, 3, 5]} -{"sent_id": [4, 0, 3, 13, 5, 2]} -{"sent_id": [1, 7, 5, 0, 2, 6]} -{"sent_id": [1, 4, 2, 13, 5, 6]} -{"sent_id": [1, 5, 4, 8, 12, 9]} -{"sent_id": [3, 1, 11, 4, 2, 0]} -{"sent_id": [1, 2, 0, 8, 13, 14]} -{"sent_id": [2, 4, 1, 6, 5, 16]} -{"sent_id": [1, 10, 0, 9, 6, 13]} -{"sent_id": [2, 6, 5, 8, 4, 1]} -{"sent_id": [1, 5, 2, 0, 4, 10]} -{"sent_id": [3, 2, 1, 10, 7, 5]} -{"sent_id": [0, 2, 11, 1, 8, 12]} -{"sent_id": [3, 13, 4, 2, 0, 7]} -{"sent_id": [4, 1, 0, 2, 3, 7]} -{"sent_id": [1, 12, 3, 2, 10, 0]} -{"sent_id": [1, 4, 14, 5, 2, 6]} -{"sent_id": [0, 1, 9, 12, 11, 3]} -{"sent_id": [2, 4, 20, 0, 3, 5]} -{"sent_id": [0, 1, 10, 2, 5, 18]} -{"sent_id": [3, 14, 0, 1, 2, 4]} -{"sent_id": [1, 2, 3, 5, 7, 8]} -{"sent_id": [4, 0, 9, 3, 1, 7]} -{"sent_id": [5, 4, 8, 6, 9, 1]} -{"sent_id": [1, 6, 2, 8, 0, 7]} -{"sent_id": [3, 0, 4, 12, 7, 10]} -{"sent_id": [16, 1, 3, 4, 8, 9]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [11, 5, 4, 3, 6, 0]} -{"sent_id": [3, 1, 2, 16, 0, 9]} -{"sent_id": [0, 11, 3, 9, 1, 2]} -{"sent_id": [7, 1, 0, 5, 10, 13]} -{"sent_id": [3, 4, 1, 7, 2, 0]} -{"sent_id": [3, 9, 14, 1, 4, 0]} -{"sent_id": [1, 2, 3, 6, 18, 0]} -{"sent_id": [1, 2, 4, 8, 5, 0]} -{"sent_id": [9, 3, 10, 1, 4, 2]} -{"sent_id": [2, 7, 3, 12, 0, 8]} -{"sent_id": [17, 0, 3, 5, 2, 1]} -{"sent_id": [2, 1, 4, 5, 11, 0]} -{"sent_id": [1, 3, 4, 0, 15, 5]} -{"sent_id": [5, 8, 16, 7, 6, 1]} -{"sent_id": [1, 6, 4, 3, 2, 5]} -{"sent_id": [1, 0, 6, 10, 5, 2]} -{"sent_id": [2, 1, 0, 4, 5, 14]} -{"sent_id": [0, 2, 6, 1, 5, 7]} -{"sent_id": [1, 0, 2, 9, 6, 3]} -{"sent_id": [2, 0, 4, 1, 3, 6]} -{"sent_id": [3, 6, 2, 1, 0, 9]} -{"sent_id": [1, 8, 0, 6, 5, 3]} -{"sent_id": [1, 15, 5, 6, 22, 0]} -{"sent_id": [2, 1, 7, 0, 5, 13]} -{"sent_id": [1, 2, 9, 0, 3, 4]} -{"sent_id": [0, 2, 1, 5, 12, 8]} -{"sent_id": [3, 4, 11, 5, 2, 1]} -{"sent_id": [0, 1, 6, 2, 4, 9]} -{"sent_id": [2, 3, 5, 6, 4, 1]} -{"sent_id": [2, 1, 4, 3, 5, 8]} -{"sent_id": [4, 5, 1, 0, 6, 2]} -{"sent_id": [3, 4, 2, 1, 8, 7]} -{"sent_id": [3, 4, 0, 2, 5, 11]} -{"sent_id": [5, 9, 2, 1, 6, 10]} -{"sent_id": [1, 10, 4, 2, 16, 0]} -{"sent_id": [1, 2, 3, 5, 13, 6]} -{"sent_id": [1, 4, 0, 2, 5, 3]} -{"sent_id": [1, 3, 4, 2, 8, 0]} -{"sent_id": [4, 6, 0, 7, 2, 17]} -{"sent_id": [2, 0, 7, 8, 1, 9]} -{"sent_id": [2, 8, 0, 4, 5, 9]} -{"sent_id": [3, 5, 1, 0, 4, 6]} -{"sent_id": [1, 4, 0, 2, 11, 10]} -{"sent_id": [1, 2, 8, 3, 7, 5]} -{"sent_id": [2, 7, 3, 6, 13, 4]} -{"sent_id": [2, 0, 6, 4, 9, 3]} -{"sent_id": [1, 3, 4, 2, 6, 0]} -{"sent_id": [2, 1, 14, 3, 5, 4]} -{"sent_id": [1, 2, 5, 8, 12, 4]} -{"sent_id": [3, 5, 4, 14, 2, 1]} -{"sent_id": [4, 5, 9, 2, 3, 6]} -{"sent_id": [1, 0, 2, 8, 13, 21]} -{"sent_id": [1, 2, 5, 8, 3, 4]} -{"sent_id": [4, 2, 3, 5, 0, 6]} -{"sent_id": [3, 1, 2, 12, 11, 5]} -{"sent_id": [4, 0, 1, 2, 8, 3]} -{"sent_id": [2, 1, 5, 6, 0, 4]} -{"sent_id": [2, 1, 3, 4, 6, 7]} -{"sent_id": [4, 2, 0, 9, 3, 10]} -{"sent_id": [2, 1, 3, 4, 5, 6]} -{"sent_id": [1, 3, 5, 0, 6, 7]} -{"sent_id": [0, 3, 1, 4, 2, 8]} -{"sent_id": [0, 4, 3, 1, 12, 2]} -{"sent_id": [1, 14, 4, 0, 3, 2]} -{"sent_id": [1, 0, 2, 13, 6, 4]} -{"sent_id": [11, 6, 2, 3, 9, 10]} -{"sent_id": [2, 7, 8, 4, 15, 10]} -{"sent_id": [3, 9, 0, 1, 10, 2]} -{"sent_id": [0, 1, 3, 2, 4, 5]} -{"sent_id": [3, 4, 5, 1, 2, 0]} -{"sent_id": [1, 4, 3, 2, 8, 11]} -{"sent_id": [0, 1, 3, 2, 4, 8]} -{"sent_id": [3, 1, 4, 5, 7, 0]} -{"sent_id": [2, 1, 4, 5, 13, 0]} -{"sent_id": [3, 1, 2, 5, 9, 4]} -{"sent_id": [1, 7, 2, 0, 10, 3]} -{"sent_id": [3, 0, 2, 1, 4, 13]} -{"sent_id": [4, 14, 5, 1, 2, 16]} -{"sent_id": [4, 1, 0, 8, 11, 5]} -{"sent_id": [0, 3, 7, 4, 8, 13]} -{"sent_id": [10, 12, 11, 14, 5, 13]} -{"sent_id": [1, 3, 0, 2, 8, 5]} -{"sent_id": [2, 5, 1, 9, 4, 11]} -{"sent_id": [0, 15, 4, 8, 3, 5]} -{"sent_id": [0, 3, 1, 2, 4, 8]} -{"sent_id": [1, 4, 2, 3, 0, 5]} -{"sent_id": [4, 13, 12, 17, 8, 2]} -{"sent_id": [3, 1, 2, 7, 8, 0]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [3, 4, 1, 5, 0, 9]} -{"sent_id": [3, 5, 0, 13, 2, 17]} -{"sent_id": [3, 0, 8, 2, 12, 7]} -{"sent_id": [1, 3, 2, 0, 4, 5]} -{"sent_id": [1, 0, 2, 9, 7, 4]} -{"sent_id": [1, 5, 0, 8, 3, 6]} -{"sent_id": [0, 2, 4, 5, 3, 1]} -{"sent_id": [0, 9, 2, 4, 3, 18]} -{"sent_id": [1, 4, 2, 3, 8, 9]} -{"sent_id": [3, 4, 5, 9, 6, 2]} -{"sent_id": [9, 3, 2, 1, 5, 4]} -{"sent_id": [0, 3, 4, 2, 1, 5]} -{"sent_id": [1, 7, 4, 0, 13, 12]} -{"sent_id": [0, 1, 2, 7, 5, 12]} -{"sent_id": [1, 3, 0, 14, 5, 4]} -{"sent_id": [2, 0, 6, 7, 3, 4]} -{"sent_id": [2, 1, 8, 4, 5, 3]} -{"sent_id": [8, 12, 9, 10, 17, 18]} -{"sent_id": [0, 2, 4, 3, 1, 5]} -{"sent_id": [1, 4, 2, 5, 0, 3]} -{"sent_id": [2, 7, 1, 4, 3, 6]} -{"sent_id": [0, 3, 10, 8, 1, 11]} -{"sent_id": [0, 8, 10, 3, 11, 17]} -{"sent_id": [14, 18, 7, 8, 4, 6]} -{"sent_id": [1, 13, 9, 0, 7, 10]} -{"sent_id": [3, 1, 4, 6, 0, 2]} -{"sent_id": [4, 1, 2, 5, 7, 9]} -{"sent_id": [8, 6, 2, 0, 13, 16]} -{"sent_id": [3, 2, 4, 14, 1, 15]} -{"sent_id": [1, 15, 6, 11, 9, 4]} -{"sent_id": [3, 4, 1, 0, 17, 2]} -{"sent_id": [10, 3, 2, 1, 0, 11]} -{"sent_id": [0, 4, 3, 2, 8, 1]} -{"sent_id": [4, 5, 1, 6, 2, 3]} -{"sent_id": [1, 4, 2, 0, 5, 8]} -{"sent_id": [4, 5, 0, 1, 3, 2]} -{"sent_id": [0, 8, 4, 1, 6, 3]} -{"sent_id": [1, 2, 4, 13, 0, 5]} -{"sent_id": [3, 1, 6, 5, 8, 2]} -{"sent_id": [1, 2, 5, 4, 0, 12]} -{"sent_id": [1, 3, 13, 2, 4, 9]} -{"sent_id": [3, 2, 9, 0, 5, 10]} -{"sent_id": [1, 7, 2, 8, 0, 9]} -{"sent_id": [1, 2, 9, 3, 10, 8]} -{"sent_id": [0, 15, 14, 4, 17, 2]} -{"sent_id": [1, 5, 0, 2, 4, 7]} -{"sent_id": [1, 3, 10, 8, 0, 19]} -{"sent_id": [2, 1, 8, 5, 13, 3]} -{"sent_id": [2, 1, 3, 5, 0, 11]} -{"sent_id": [4, 2, 1, 0, 5, 3]} -{"sent_id": [2, 0, 5, 13, 7, 1]} -{"sent_id": [6, 0, 10, 1, 2, 4]} -{"sent_id": [0, 4, 2, 1, 5, 8]} -{"sent_id": [3, 10, 6, 8, 4, 5]} -{"sent_id": [1, 2, 6, 3, 11, 5]} -{"sent_id": [0, 8, 4, 1, 2, 3]} -{"sent_id": [3, 2, 1, 4, 10, 9]} -{"sent_id": [1, 2, 0, 12, 14, 9]} -{"sent_id": [3, 2, 1, 10, 7, 0]} -{"sent_id": [3, 2, 9, 5, 4, 1]} -{"sent_id": [1, 3, 2, 0, 16, 15]} -{"sent_id": [4, 0, 10, 1, 8, 9]} -{"sent_id": [4, 5, 0, 15, 9, 6]} -{"sent_id": [6, 9, 0, 1, 2, 3]} -{"sent_id": [1, 2, 8, 5, 10, 12]} -{"sent_id": [6, 9, 2, 1, 0, 3]} -{"sent_id": [1, 0, 2, 7, 17, 3]} -{"sent_id": [2, 8, 6, 3, 4, 5]} -{"sent_id": [0, 2, 3, 10, 5, 1]} -{"sent_id": [4, 3, 1, 2, 6, 10]} -{"sent_id": [2, 1, 3, 7, 6, 12]} -{"sent_id": [5, 13, 0, 10, 3, 2]} -{"sent_id": [1, 2, 5, 7, 6, 3]} -{"sent_id": [4, 5, 1, 12, 2, 0]} -{"sent_id": [0, 1, 3, 9, 7, 10]} -{"sent_id": [3, 11, 1, 10, 2, 0]} -{"sent_id": [4, 2, 0, 1, 12, 3]} -{"sent_id": [1, 6, 4, 2, 0, 7]} -{"sent_id": [0, 2, 1, 3, 6, 5]} -{"sent_id": [3, 2, 0, 7, 4, 9]} -{"sent_id": [3, 13, 4, 2, 8, 1]} -{"sent_id": [1, 3, 2, 12, 9, 0]} -{"sent_id": [1, 2, 0, 11, 8, 12]} -{"sent_id": [1, 0, 8, 2, 9, 12]} -{"sent_id": [3, 2, 1, 4, 12, 10]} -{"sent_id": [5, 4, 3, 0, 1, 16]} -{"sent_id": [1, 2, 6, 3, 5, 0]} -{"sent_id": [0, 11, 1, 10, 12, 13]} -{"sent_id": [1, 4, 0, 3, 11, 2]} -{"sent_id": [3, 4, 1, 0, 7, 5]} -{"sent_id": [0, 1, 2, 5, 3, 11]} -{"sent_id": [3, 11, 2, 7, 4, 9]} -{"sent_id": [3, 2, 5, 1, 9, 12]} -{"sent_id": [2, 3, 5, 8, 4, 7]} -{"sent_id": [2, 4, 0, 3, 5, 15]} -{"sent_id": [1, 2, 4, 7, 6, 12]} -{"sent_id": [0, 4, 6, 3, 7, 2]} -{"sent_id": [5, 4, 6, 2, 3, 15]} -{"sent_id": [3, 4, 8, 1, 2, 13]} -{"sent_id": [1, 0, 10, 3, 2, 16]} -{"sent_id": [1, 2, 3, 5, 6, 4]} -{"sent_id": [1, 3, 9, 2, 7, 8]} -{"sent_id": [3, 8, 0, 1, 2, 4]} -{"sent_id": [1, 2, 0, 13, 14, 4]} -{"sent_id": [14, 1, 0, 2, 4, 3]} -{"sent_id": [4, 3, 5, 0, 1, 2]} -{"sent_id": [1, 4, 3, 2, 5, 6]} -{"sent_id": [1, 5, 6, 2, 0, 8]} -{"sent_id": [1, 2, 8, 13, 4, 5]} -{"sent_id": [4, 3, 2, 5, 8, 16]} -{"sent_id": [1, 0, 2, 11, 17, 7]} -{"sent_id": [1, 4, 10, 2, 3, 9]} -{"sent_id": [1, 3, 2, 4, 0, 5]} -{"sent_id": [3, 4, 6, 2, 12, 9]} -{"sent_id": [3, 4, 2, 5, 1, 9]} -{"sent_id": [1, 2, 4, 0, 3, 8]} -{"sent_id": [1, 2, 6, 11, 7, 5]} -{"sent_id": [0, 1, 2, 3, 13, 20]} -{"sent_id": [0, 1, 9, 2, 3, 8]} -{"sent_id": [1, 2, 12, 8, 3, 6]} -{"sent_id": [1, 8, 2, 0, 3, 10]} -{"sent_id": [2, 4, 5, 3, 6, 0]} -{"sent_id": [2, 3, 4, 6, 5, 8]} -{"sent_id": [3, 1, 14, 4, 2, 13]} -{"sent_id": [7, 10, 2, 4, 3, 9]} -{"sent_id": [0, 1, 4, 13, 20, 3]} -{"sent_id": [1, 7, 3, 4, 2, 9]} -{"sent_id": [4, 1, 2, 7, 0, 13]} -{"sent_id": [1, 2, 4, 5, 7, 3]} -{"sent_id": [1, 2, 3, 10, 12, 0]} -{"sent_id": [5, 1, 3, 6, 4, 12]} -{"sent_id": [0, 1, 5, 9, 8, 7]} -{"sent_id": [3, 0, 1, 7, 4, 6]} -{"sent_id": [0, 1, 11, 10, 3, 8]} -{"sent_id": [0, 1, 4, 5, 3, 11]} -{"sent_id": [4, 14, 0, 16, 1, 3]} -{"sent_id": [19, 8, 3, 5, 20, 12]} -{"sent_id": [3, 0, 4, 15, 2, 1]} -{"sent_id": [0, 4, 2, 1, 3, 15]} -{"sent_id": [3, 2, 4, 14, 13, 17]} -{"sent_id": [5, 1, 3, 2, 11, 8]} -{"sent_id": [4, 1, 2, 3, 0, 6]} -{"sent_id": [3, 0, 1, 2, 7, 12]} -{"sent_id": [2, 1, 0, 5, 6, 14]} -{"sent_id": [1, 2, 3, 6, 15, 5]} -{"sent_id": [1, 8, 0, 3, 9, 13]} -{"sent_id": [4, 3, 15, 0, 1, 5]} -{"sent_id": [4, 1, 12, 0, 7, 6]} -{"sent_id": [1, 2, 3, 4, 10, 9]} -{"sent_id": [3, 1, 0, 2, 4, 5]} -{"sent_id": [5, 0, 3, 1, 2, 14]} -{"sent_id": [1, 2, 6, 21, 20, 19]} -{"sent_id": [1, 2, 7, 6, 5, 14]} -{"sent_id": [11, 0, 1, 3, 10, 16]} -{"sent_id": [3, 10, 4, 5, 7, 2]} -{"sent_id": [2, 5, 4, 1, 6, 8]} -{"sent_id": [0, 8, 5, 11, 4, 12]} -{"sent_id": [5, 2, 3, 4, 12, 8]} -{"sent_id": [0, 1, 2, 4, 5, 3]} -{"sent_id": [2, 1, 17, 8, 18, 0]} -{"sent_id": [9, 7, 3, 4, 0, 5]} -{"sent_id": [1, 3, 6, 11, 4, 7]} -{"sent_id": [5, 10, 0, 9, 15, 2]} -{"sent_id": [6, 3, 7, 18, 17, 15]} -{"sent_id": [4, 3, 1, 0, 2, 17]} -{"sent_id": [4, 3, 2, 0, 5, 1]} -{"sent_id": [0, 11, 1, 3, 4, 2]} -{"sent_id": [0, 1, 2, 13, 5, 3]} -{"sent_id": [1, 0, 2, 4, 3, 8]} -{"sent_id": [2, 3, 1, 6, 12, 4]} -{"sent_id": [1, 6, 2, 0, 7, 3]} -{"sent_id": [9, 1, 6, 11, 7, 12]} -{"sent_id": [3, 11, 1, 2, 4, 0]} -{"sent_id": [1, 2, 3, 11, 0, 7]} -{"sent_id": [1, 6, 4, 3, 7, 2]} -{"sent_id": [1, 3, 4, 2, 5, 11]} -{"sent_id": [10, 1, 3, 15, 0, 8]} -{"sent_id": [1, 0, 2, 3, 4, 6]} -{"sent_id": [0, 6, 9, 19, 8, 17]} -{"sent_id": [1, 2, 17, 0, 18, 13]} -{"sent_id": [4, 9, 1, 3, 5, 15]} -{"sent_id": [4, 3, 2, 5, 1, 0]} -{"sent_id": [6, 5, 9, 7, 11, 2]} -{"sent_id": [0, 1, 2, 4, 9, 8]} -{"sent_id": [1, 3, 0, 2, 6, 7]} -{"sent_id": [1, 2, 4, 0, 5, 10]} -{"sent_id": [2, 1, 4, 11, 6, 12]} -{"sent_id": [2, 1, 14, 7, 5, 3]} -{"sent_id": [3, 5, 1, 6, 13, 2]} -{"sent_id": [2, 1, 6, 0, 3, 7]} -{"sent_id": [3, 4, 1, 0, 5, 2]} -{"sent_id": [3, 1, 2, 13, 4, 0]} -{"sent_id": [2, 5, 1, 0, 6, 12]} -{"sent_id": [3, 4, 8, 7, 5, 2]} -{"sent_id": [1, 3, 4, 2, 5, 11]} -{"sent_id": [3, 4, 2, 0, 10, 9]} -{"sent_id": [2, 1, 3, 4, 0, 6]} -{"sent_id": [2, 1, 3, 5, 4, 0]} -{"sent_id": [6, 1, 2, 8, 3, 7]} -{"sent_id": [2, 5, 7, 6, 13, 4]} -{"sent_id": [0, 3, 1, 7, 6, 2]} -{"sent_id": [3, 6, 0, 1, 7, 8]} -{"sent_id": [1, 0, 5, 2, 4, 3]} -{"sent_id": [3, 8, 18, 1, 2, 10]} -{"sent_id": [1, 4, 10, 8, 2, 5]} -{"sent_id": [1, 4, 2, 5, 12, 15]} -{"sent_id": [4, 5, 3, 2, 11, 6]} -{"sent_id": [3, 9, 0, 4, 5, 1]} -{"sent_id": [1, 2, 3, 4, 11, 7]} -{"sent_id": [3, 1, 2, 0, 17, 14]} -{"sent_id": [0, 4, 6, 10, 2, 9]} -{"sent_id": [5, 14, 6, 1, 4, 2]} -{"sent_id": [0, 4, 6, 12, 5, 11]} -{"sent_id": [3, 2, 12, 18, 4, 10]} -{"sent_id": [0, 3, 9, 11, 1, 10]} -{"sent_id": [1, 3, 0, 2, 13, 6]} -{"sent_id": [1, 2, 4, 3, 0, 5]} -{"sent_id": [6, 2, 7, 1, 4, 14]} -{"sent_id": [2, 1, 0, 7, 9, 4]} -{"sent_id": [2, 8, 0, 1, 11, 9]} -{"sent_id": [1, 2, 3, 10, 0, 5]} -{"sent_id": [0, 20, 13, 4, 1, 14]} -{"sent_id": [1, 2, 6, 3, 12, 5]} -{"sent_id": [1, 2, 3, 9, 10, 0]} -{"sent_id": [1, 2, 10, 0, 3, 13]} -{"sent_id": [5, 4, 1, 8, 3, 2]} -{"sent_id": [3, 5, 2, 4, 15, 10]} -{"sent_id": [3, 0, 1, 2, 11, 10]} -{"sent_id": [0, 1, 2, 3, 9, 5]} -{"sent_id": [4, 3, 7, 1, 9, 5]} -{"sent_id": [0, 9, 7, 2, 4, 1]} -{"sent_id": [0, 2, 8, 4, 6, 1]} -{"sent_id": [1, 2, 4, 0, 8, 5]} -{"sent_id": [1, 0, 2, 5, 9, 8]} -{"sent_id": [1, 5, 3, 6, 0, 2]} -{"sent_id": [0, 2, 3, 4, 9, 11]} -{"sent_id": [1, 6, 8, 0, 11, 7]} -{"sent_id": [1, 3, 4, 9, 6, 2]} -{"sent_id": [2, 1, 5, 4, 9, 0]} -{"sent_id": [3, 2, 12, 6, 1, 0]} -{"sent_id": [3, 1, 0, 4, 2, 7]} -{"sent_id": [1, 0, 2]} -{"sent_id": [0, 1, 2, 5, 10, 6]} -{"sent_id": [3, 12, 2, 4, 0, 13]} -{"sent_id": [2, 6, 13, 23, 21, 9]} -{"sent_id": [0, 1, 11, 3, 5, 7]} -{"sent_id": [0, 1, 14, 2, 13, 12]} -{"sent_id": [4, 9, 2, 1, 7, 6]} -{"sent_id": [3, 4, 2, 5, 1, 0]} -{"sent_id": [3, 4, 8, 0, 2, 1]} -{"sent_id": [1, 0, 10, 7, 2, 4]} -{"sent_id": [2, 1, 7, 0, 3, 14]} -{"sent_id": [1, 7, 2, 0, 11, 16]} -{"sent_id": [1, 2, 5, 3, 0, 6]} -{"sent_id": [3, 4, 12, 2, 6, 0]} -{"sent_id": [1, 12, 16, 6, 2, 11]} -{"sent_id": [3, 6, 1, 5, 4, 0]} -{"sent_id": [2, 4, 5, 1, 9, 10]} -{"sent_id": [4, 5, 2, 1, 3, 0]} -{"sent_id": [3, 0, 1, 5, 4, 2]} -{"sent_id": [3, 14, 4, 5, 2, 7]} -{"sent_id": [5, 0, 4, 2, 1, 7]} -{"sent_id": [0, 2, 5, 10, 1, 9]} -{"sent_id": [2, 0, 12, 5, 4, 9]} -{"sent_id": [2, 3, 1, 5, 4, 0]} -{"sent_id": [1, 2, 0, 12, 3, 5]} -{"sent_id": [7, 1, 2, 6, 0, 3]} -{"sent_id": [1, 2, 6, 9, 8, 12]} -{"sent_id": [0, 10, 4, 1, 2, 7]} -{"sent_id": [1, 2, 0, 3, 8, 4]} -{"sent_id": [16, 7, 8, 5, 4, 9]} -{"sent_id": [7, 0, 1, 2, 3, 5]} -{"sent_id": [3, 1, 4, 5, 10, 11]} -{"sent_id": [4, 1, 3, 16, 2, 11]} -{"sent_id": [6, 1, 7, 5, 11, 3]} -{"sent_id": [2, 0, 3, 7, 8, 12]} -{"sent_id": [1, 2, 3, 4, 11, 0]} -{"sent_id": [0, 1, 2, 9, 3, 4]} -{"sent_id": [5, 3, 2, 12, 8, 13]} -{"sent_id": [0, 3, 12, 1, 4, 7]} -{"sent_id": [3, 2, 6, 8, 4, 7]} -{"sent_id": [1, 3, 4, 2, 5, 12]} -{"sent_id": [8, 4, 9, 3, 2, 11]} -{"sent_id": [2, 3, 1, 4, 0, 9]} -{"sent_id": [2, 13, 3, 0, 8, 1]} -{"sent_id": [4, 2, 1, 0, 10, 6]} -{"sent_id": [3, 1, 11, 2, 9, 7]} -{"sent_id": [1, 4, 6, 0, 2, 7]} -{"sent_id": [4, 1, 3, 2, 5, 13]} -{"sent_id": [2, 3, 10, 5, 0, 4]} -{"sent_id": [9, 17, 6, 7, 3, 18]} -{"sent_id": [1, 14, 4, 3, 0, 16]} -{"sent_id": [15, 0, 1, 10, 14, 2]} -{"sent_id": [13, 3, 0, 2, 9, 7]} -{"sent_id": [1, 5, 4, 2, 0, 14]} -{"sent_id": [13, 12, 0, 2, 18, 6]} -{"sent_id": [8, 6, 3, 4, 0, 1]} -{"sent_id": [1, 2, 5, 9, 7, 0]} -{"sent_id": [3, 6, 8, 4, 10, 5]} -{"sent_id": [10, 7, 11, 1, 2, 0]} -{"sent_id": [2, 3, 0, 1, 6, 5]} -{"sent_id": [2, 3, 12, 0, 7, 4]} -{"sent_id": [3, 2, 1, 11, 0, 4]} -{"sent_id": [3, 1, 4, 2, 0, 7]} -{"sent_id": [0, 6, 1, 2, 7, 15]} -{"sent_id": [4, 3, 0, 1, 10, 2]} -{"sent_id": [4, 0, 1, 3, 5, 2]} -{"sent_id": [12, 13, 3, 1, 2, 14]} -{"sent_id": [3, 5, 4, 10, 7, 2]} -{"sent_id": [1, 2, 7, 0, 8, 4]} -{"sent_id": [1, 4, 2, 0, 5, 10]} -{"sent_id": [14, 0, 5, 1, 6, 10]} -{"sent_id": [5, 1, 3, 7, 2, 4]} -{"sent_id": [1, 7, 2, 12, 0, 3]} -{"sent_id": [1, 0, 7, 13, 4, 2]} -{"sent_id": [1, 14, 2, 3, 0, 5]} -{"sent_id": [1, 3, 2, 0, 4, 12]} -{"sent_id": [2, 1, 10, 4, 13, 0]} -{"sent_id": [3, 1, 8, 6, 5, 2]} -{"sent_id": [5, 6, 17, 0, 7, 2]} -{"sent_id": [2, 4, 3, 7, 1, 13]} -{"sent_id": [1, 3, 2, 9, 8, 4]} -{"sent_id": [1, 2, 3, 16, 5, 4]} -{"sent_id": [0, 5, 6, 4, 1, 10]} -{"sent_id": [4, 10, 3, 5, 9, 0]} -{"sent_id": [0, 1, 3, 5, 9, 4]} -{"sent_id": [1, 14, 2, 0, 20, 22]} -{"sent_id": [1, 3, 5, 2, 4, 14]} -{"sent_id": [3, 4, 0, 1, 11, 2]} -{"sent_id": [0, 14, 4, 5, 2, 9]} -{"sent_id": [0, 1, 6, 8, 11, 7]} -{"sent_id": [1, 4, 2, 5, 0, 3]} -{"sent_id": [3, 2, 6, 5, 9, 8]} -{"sent_id": [1, 2, 5, 4, 3, 6]} -{"sent_id": [9, 0, 3, 10, 4, 5]} -{"sent_id": [7, 17, 0, 9, 14, 2]} -{"sent_id": [7, 1, 3, 0, 5, 4]} -{"sent_id": [0, 3, 9, 1, 13, 4]} -{"sent_id": [1, 2, 3, 14, 4, 5]} -{"sent_id": [1, 2, 3, 16, 7, 0]} -{"sent_id": [4, 10, 3, 11, 5, 12]} -{"sent_id": [3, 12, 0, 5, 1, 2]} -{"sent_id": [3, 5, 1, 2, 4, 7]} -{"sent_id": [0, 1, 2, 6, 14, 16]} -{"sent_id": [1, 0, 3, 2, 5, 4]} -{"sent_id": [1, 2, 3, 8, 5, 7]} -{"sent_id": [3, 9, 4, 1, 0, 15]} -{"sent_id": [5, 4, 11, 12, 9, 2]} -{"sent_id": [5, 18, 9, 2, 19, 3]} -{"sent_id": [3, 0, 2, 1, 4, 5]} -{"sent_id": [2, 0, 1, 6, 18, 5]} -{"sent_id": [0, 1, 9, 6, 8, 4]} -{"sent_id": [0, 2, 3, 10, 5, 9]} -{"sent_id": [0, 2, 4, 3, 1, 9]} -{"sent_id": [3, 1, 12, 4, 13, 14]} -{"sent_id": [1, 0, 4, 7, 8, 2]} -{"sent_id": [7, 5, 9, 10, 1, 2]} -{"sent_id": [0, 2, 1, 7, 9, 4]} -{"sent_id": [1, 2, 7, 0, 3, 5]} -{"sent_id": [0, 1, 3, 13, 8, 2]} -{"sent_id": [0, 2, 1, 3, 6, 11]} -{"sent_id": [1, 3, 12, 8, 7, 0]} -{"sent_id": [1, 2, 3, 12, 7, 13]} -{"sent_id": [3, 4, 2, 6, 5, 8]} -{"sent_id": [1, 3, 2, 8, 6, 11]} -{"sent_id": [3, 1, 9, 4, 2, 5]} -{"sent_id": [0, 4, 6, 1, 5, 3]} -{"sent_id": [3, 14, 4, 13, 12, 1]} -{"sent_id": [2, 1, 3, 6, 8, 4]} -{"sent_id": [12, 2, 4, 3, 7, 13]} -{"sent_id": [3, 1, 2, 8, 7, 4]} -{"sent_id": [1, 2, 3, 7, 5, 0]} -{"sent_id": [3, 2, 9, 4, 13, 7]} -{"sent_id": [0, 2, 3, 5, 1, 10]} -{"sent_id": [1, 2, 5, 6, 4, 0]} -{"sent_id": [0, 6, 5, 8, 3, 1]} -{"sent_id": [3, 1, 2, 8, 13, 14]} -{"sent_id": [1, 5, 3, 2, 6, 0]} -{"sent_id": [4, 1, 5, 12, 10, 2]} -{"sent_id": [1, 11, 10, 6, 3, 2]} -{"sent_id": [3, 4, 5, 0, 2, 12]} -{"sent_id": [9, 8, 3, 6, 0, 2]} -{"sent_id": [0, 4, 2, 1, 15, 8]} -{"sent_id": [1, 2, 4, 0, 3, 5]} -{"sent_id": [2, 1, 11, 15, 12, 19]} -{"sent_id": [0, 3, 4, 1, 5, 6]} -{"sent_id": [3, 2, 1, 7, 4, 6]} -{"sent_id": [0, 1, 4, 3, 7, 2]} -{"sent_id": [3, 4, 0, 7, 1, 12]} -{"sent_id": [3, 0, 4, 19, 1, 2]} -{"sent_id": [2, 1, 4, 5, 0, 3]} -{"sent_id": [1, 2, 15, 3, 5, 12]} -{"sent_id": [1, 7, 2, 4, 0, 6]} -{"sent_id": [1, 0, 6, 7, 3, 4]} -{"sent_id": [1, 3, 2, 4, 7, 5]} -{"sent_id": [3, 2, 10, 9, 11, 7]} -{"sent_id": [1, 2, 0, 5, 11, 4]} -{"sent_id": [0, 13, 6, 14, 5, 10]} -{"sent_id": [2, 1, 4, 7, 6, 5]} -{"sent_id": [9, 3, 10, 4, 1, 8]} -{"sent_id": [2, 9, 3, 6, 8, 7]} -{"sent_id": [5, 3, 0, 6, 2, 1]} -{"sent_id": [0, 2, 4, 3, 10, 7]} -{"sent_id": [0, 1, 3, 2, 13, 12]} -{"sent_id": [2, 1, 0, 14, 7, 11]} -{"sent_id": [0, 7, 1, 3, 2, 5]} -{"sent_id": [1, 3, 15, 12, 0, 4]} -{"sent_id": [2, 3, 6, 1, 11, 10]} -{"sent_id": [2, 1, 3, 11, 6, 4]} -{"sent_id": [3, 0, 7, 8, 1, 15]} -{"sent_id": [5, 1, 2, 4, 11, 15]} -{"sent_id": [0, 4, 13, 2, 7, 14]} -{"sent_id": [0, 4, 1, 3, 2, 11]} -{"sent_id": [1, 2, 4, 5, 10, 6]} -{"sent_id": [2, 3, 1, 8, 7, 6]} -{"sent_id": [3, 4, 0, 2, 1, 5]} -{"sent_id": [1, 2, 5, 7, 10, 6]} -{"sent_id": [2, 1, 11, 4, 8, 0]} -{"sent_id": [1, 3, 13, 4, 5, 2]} -{"sent_id": [9, 7, 1, 2, 6, 3]} -{"sent_id": [2, 1, 5, 0, 9, 7]} -{"sent_id": [1, 2, 7, 3, 4, 5]} -{"sent_id": [13, 6, 8, 7, 5, 9]} -{"sent_id": [8, 2, 9, 19, 16, 11]} -{"sent_id": [4, 5, 6, 11, 9, 3]} -{"sent_id": [2, 1, 0, 6, 7, 5]} -{"sent_id": [3, 11, 2, 1, 5, 10]} -{"sent_id": [2, 10, 4, 3, 0, 1]} -{"sent_id": [2, 1, 3, 0, 12, 15]} -{"sent_id": [2, 1, 3, 0, 9, 16]} -{"sent_id": [0, 2, 4, 19, 1, 13]} -{"sent_id": [3, 2, 7, 8, 4, 0]} -{"sent_id": [7, 0, 2, 3, 1, 11]} -{"sent_id": [1, 8, 12, 2, 3, 5]} -{"sent_id": [3, 1, 0, 6, 4, 5]} -{"sent_id": [3, 1, 2, 5, 4, 0]} -{"sent_id": [3, 1, 4, 2, 8, 9]} -{"sent_id": [1, 2, 3, 0, 4, 7]} -{"sent_id": [1, 3, 10, 4, 0, 6]} -{"sent_id": [0, 9, 2, 1, 3, 8]} -{"sent_id": [0, 2, 1, 3, 13, 6]} -{"sent_id": [0, 5, 18, 1, 19, 21]} -{"sent_id": [4, 5, 9, 17, 6, 12]} -{"sent_id": [10, 1, 2, 3, 8, 0]} -{"sent_id": [1, 2, 0, 3, 7, 14]} -{"sent_id": [0, 3, 1, 7, 2, 15]} -{"sent_id": [2, 10, 7, 11, 4, 0]} -{"sent_id": [1, 2, 5, 13, 3, 6]} -{"sent_id": [7, 2, 0, 4, 3, 17]} -{"sent_id": [0, 1, 2, 3, 4, 9]} -{"sent_id": [0, 1, 4, 2, 3, 9]} -{"sent_id": [5, 6, 2, 7, 11, 8]} -{"sent_id": [1, 6, 7, 2, 3, 0]} -{"sent_id": [3, 4, 0, 15, 5, 1]} -{"sent_id": [3, 2, 4, 1, 0, 13]} -{"sent_id": [0, 2, 6, 1, 12, 5]} -{"sent_id": [15, 16, 2, 10, 7, 18]} -{"sent_id": [4, 3, 2, 9, 16, 1]} -{"sent_id": [1, 4, 2, 3, 5, 8]} -{"sent_id": [3, 2, 10, 11, 5, 7]} -{"sent_id": [1, 5, 2, 3, 4, 6]} -{"sent_id": [6, 5, 15, 7, 4, 3]} -{"sent_id": [0, 4, 5, 14, 6, 8]} -{"sent_id": [0, 6, 3, 5, 11, 2]} -{"sent_id": [2, 0, 7, 3, 14, 4]} -{"sent_id": [2, 1, 4, 10, 3, 12]} -{"sent_id": [3, 4, 0, 13, 1, 12]} -{"sent_id": [2, 3, 12, 0, 4, 6]} -{"sent_id": [9, 10, 11, 7, 13, 6]} -{"sent_id": [3, 4, 5, 0, 1, 2]} -{"sent_id": [1, 3, 4, 2, 5, 12]} -{"sent_id": [3, 4, 2, 5, 13, 6]} -{"sent_id": [4, 14, 3, 10, 19, 8]} -{"sent_id": [2, 4, 11, 3, 9, 8]} -{"sent_id": [4, 1, 5, 6, 9, 11]} -{"sent_id": [2, 11, 0, 3, 1, 5]} -{"sent_id": [9, 16, 0, 2, 3, 4]} -{"sent_id": [3, 0, 4, 2, 12, 11]} -{"sent_id": [2, 1, 3, 16, 4, 13]} -{"sent_id": [0, 3, 2, 1, 4, 7]} -{"sent_id": [3, 2, 4, 7, 6, 0]} -{"sent_id": [0, 1, 6, 4, 2, 7]} -{"sent_id": [1, 2, 4, 0, 3, 8]} -{"sent_id": [2, 1, 0, 9, 3, 5]} -{"sent_id": [7, 0, 10, 3, 2, 1]} -{"sent_id": [1, 4, 0, 3, 5, 13]} -{"sent_id": [3, 4, 1, 0, 10, 7]} -{"sent_id": [1, 2, 3, 14, 10, 7]} -{"sent_id": [3, 4, 0, 12, 8, 6]} -{"sent_id": [1, 8, 5, 2, 15, 4]} -{"sent_id": [11, 3, 0, 2, 7, 8]} -{"sent_id": [1, 4, 3, 2, 8, 5]} -{"sent_id": [1, 3, 13, 4, 9, 2]} -{"sent_id": [2, 0, 3, 9, 1, 19]} -{"sent_id": [1, 3, 2, 0, 9, 14]} -{"sent_id": [0, 3, 12, 4, 13, 1]} -{"sent_id": [3, 0, 1, 2, 14, 13]} -{"sent_id": [4, 2, 9, 3, 1, 5]} -{"sent_id": [1, 2, 5, 14, 4, 0]} -{"sent_id": [15, 2, 3, 4, 5, 8]} -{"sent_id": [3, 7, 2, 1, 0, 5]} -{"sent_id": [4, 10, 6, 5, 3, 9]} -{"sent_id": [3, 4, 2, 11, 0, 7]} -{"sent_id": [3, 6, 7, 1, 0, 11]} -{"sent_id": [12, 2, 10, 11, 4, 3]} -{"sent_id": [4, 6, 2, 5, 1, 3]} -{"sent_id": [1, 3, 2, 0, 5, 9]} -{"sent_id": [3, 2, 1, 4, 0, 16]} -{"sent_id": [3, 4, 8, 2, 0, 1]} -{"sent_id": [0, 1, 4, 7, 8, 2]} -{"sent_id": [3, 4, 5, 1, 2, 6]} -{"sent_id": [0, 7, 3, 6, 4, 9]} -{"sent_id": [4, 15, 2, 14, 3, 12]} -{"sent_id": [2, 1, 3, 9, 4, 8]} -{"sent_id": [1, 4, 2, 11, 3, 9]} -{"sent_id": [1, 2, 4, 3, 0, 5]} -{"sent_id": [8, 2, 7, 1, 3, 0]} -{"sent_id": [3, 4, 1, 5, 8, 2]} -{"sent_id": [3, 0, 4, 1, 6, 2]} -{"sent_id": [1, 11, 2, 12, 10, 4]} -{"sent_id": [1, 0, 2, 3, 4, 9]} -{"sent_id": [2, 3, 4, 5, 0, 1]} -{"sent_id": [0, 9, 10, 4, 1, 3]} -{"sent_id": [3, 14, 7, 5, 10, 6]} -{"sent_id": [7, 2, 9, 13, 8, 3]} -{"sent_id": [1, 2, 3, 6, 0, 4]} -{"sent_id": [0, 14, 1, 2, 9, 4]} -{"sent_id": [1, 3, 4, 5, 2, 9]} -{"sent_id": [2, 1, 3, 9, 7, 5]} -{"sent_id": [3, 18, 14, 5, 0, 4]} -{"sent_id": [4, 0, 5, 1, 7, 3]} -{"sent_id": [0, 2, 3, 4, 5, 7]} -{"sent_id": [2, 1, 6, 4, 7, 3]} -{"sent_id": [1, 2, 3, 19, 5, 8]} -{"sent_id": [3, 4, 8, 0, 1, 9]} -{"sent_id": [2, 3, 4, 12, 1, 7]} -{"sent_id": [2, 3, 6, 17, 4, 7]} -{"sent_id": [3, 13, 14, 4, 9, 0]} -{"sent_id": [0, 4, 8, 1, 2, 7]} -{"sent_id": [3, 4, 1, 2, 6, 8]} -{"sent_id": [4, 5, 13, 0, 11, 10]} -{"sent_id": [2, 19, 12, 18, 11, 4]} -{"sent_id": [1, 2, 0, 8, 7, 11]} -{"sent_id": [7, 3, 2, 6, 10, 4]} -{"sent_id": [1, 7, 0, 6, 2, 11]} -{"sent_id": [0, 12, 6, 3, 4, 7]} -{"sent_id": [3, 0, 4, 11, 12, 8]} -{"sent_id": [0, 1, 2, 3, 5, 8]} -{"sent_id": [2, 1, 6, 11, 4, 5]} -{"sent_id": [3, 13, 4, 1, 0, 2]} -{"sent_id": [5, 1, 6, 3, 4, 7]} -{"sent_id": [2, 3, 11, 0, 4, 9]} -{"sent_id": [0, 9, 6, 7, 3, 5]} -{"sent_id": [7, 17, 9, 8, 2, 3]} -{"sent_id": [1, 2, 3, 5, 4, 0]} -{"sent_id": [4, 1, 0, 5, 2, 3]} -{"sent_id": [3, 2, 1, 5, 4, 12]} -{"sent_id": [2, 1, 4, 0, 5, 13]} -{"sent_id": [3, 9, 7, 1, 0, 20]} -{"sent_id": [1, 3, 2, 4, 14, 11]} -{"sent_id": [3, 4, 1, 8, 2, 6]} -{"sent_id": [1, 8, 2, 0, 4, 3]} -{"sent_id": [0, 2, 13, 1, 9, 15]} -{"sent_id": [3, 5, 4, 6, 0, 2]} -{"sent_id": [1, 3, 10, 4, 2, 0]} -{"sent_id": [3, 4, 13, 14, 15, 0]} -{"sent_id": [1, 2, 0, 6, 4, 11]} -{"sent_id": [0, 11, 2, 12, 3, 6]} -{"sent_id": [2, 0, 5, 3, 4, 1]} -{"sent_id": [0, 4, 6, 9, 17, 5]} -{"sent_id": [14, 4, 2, 10, 11, 5]} -{"sent_id": [2, 4, 3, 0, 1, 9]} -{"sent_id": [0, 5, 7, 1, 10, 2]} -{"sent_id": [2, 1, 0, 3, 5, 4]} -{"sent_id": [5, 1, 0, 4, 2, 3]} -{"sent_id": [1, 4, 9, 3, 10, 8]} -{"sent_id": [1, 11, 3, 0, 2, 13]} -{"sent_id": [1, 4, 15, 2, 6, 3]} -{"sent_id": [0, 3, 1, 6, 4, 12]} -{"sent_id": [0, 2, 1, 3, 7, 4]} -{"sent_id": [4, 3, 2, 1, 7, 8]} -{"sent_id": [3, 4, 2, 10, 9, 11]} -{"sent_id": [1, 2, 9, 4, 12, 5]} -{"sent_id": [9, 13, 12, 10, 0, 4]} -{"sent_id": [2, 1, 6, 5, 11, 9]} -{"sent_id": [1, 2, 0, 8, 5, 6]} -{"sent_id": [2, 3, 14, 4, 0, 1]} -{"sent_id": [1, 7, 0, 5, 6, 2]} -{"sent_id": [3, 10, 0, 4, 2, 1]} -{"sent_id": [8, 0, 3, 2, 1, 4]} -{"sent_id": [10, 1, 0, 3, 2, 4]} -{"sent_id": [3, 4, 9, 5, 2, 1]} -{"sent_id": [2, 1, 3, 0, 6, 4]} -{"sent_id": [1, 2, 4, 3, 6, 5]} -{"sent_id": [0, 7, 12, 2, 1, 3]} -{"sent_id": [3, 1, 10, 7, 0, 2]} -{"sent_id": [0, 1, 9, 2, 10, 3]} -{"sent_id": [1, 3, 0, 2, 6, 8]} -{"sent_id": [2, 0, 3, 14, 1, 13]} -{"sent_id": [4, 0, 3, 11, 1, 2]} -{"sent_id": [10, 0, 5, 11, 1, 6]} -{"sent_id": [4, 3, 1, 2, 10, 0]} -{"sent_id": [3, 4, 2, 1, 0, 13]} -{"sent_id": [0, 8, 1, 7, 12, 2]} -{"sent_id": [8, 1, 9, 5, 7, 6]} -{"sent_id": [1, 2, 3, 7, 5, 15]} -{"sent_id": [0, 8, 2, 3, 4, 5]} -{"sent_id": [4, 5, 7, 6, 19, 2]} -{"sent_id": [2, 3, 0, 1, 4, 5]} -{"sent_id": [3, 2, 1, 4, 18, 11]} -{"sent_id": [2, 1, 11, 0, 6, 3]} -{"sent_id": [1, 2, 3, 9, 16, 0]} -{"sent_id": [0, 1, 2, 8, 3, 4]} -{"sent_id": [1, 4, 3, 2, 5, 17]} -{"sent_id": [0, 4, 13, 3, 14, 12]} -{"sent_id": [2, 3, 4, 5, 0, 6]} -{"sent_id": [0, 3, 13, 1, 2, 14]} -{"sent_id": [1, 2, 5, 3, 4, 8]} -{"sent_id": [4, 13, 1, 2, 14, 6]} -{"sent_id": [1, 2, 3, 11, 0, 16]} -{"sent_id": [6, 5, 7, 2, 8, 4]} -{"sent_id": [3, 4, 2, 1, 5, 6]} -{"sent_id": [3, 17, 2, 6, 4, 5]} -{"sent_id": [2, 1, 4, 9, 17, 15]} -{"sent_id": [2, 1, 4, 9, 3, 7]} -{"sent_id": [1, 2, 3, 11, 0, 7]} -{"sent_id": [3, 4, 1, 0, 5, 2]} -{"sent_id": [1, 2, 0, 9, 3, 4]} -{"sent_id": [2, 3, 5, 0, 1, 4]} -{"sent_id": [1, 2, 4, 0, 3, 7]} -{"sent_id": [3, 0, 15, 19, 1, 2]} -{"sent_id": [3, 17, 2, 1, 4, 6]} -{"sent_id": [0, 4, 5, 3, 1, 6]} -{"sent_id": [0, 2, 5, 3, 1, 4]} -{"sent_id": [1, 2, 4, 9, 5, 15]} -{"sent_id": [0, 5, 1, 4, 11, 13]} -{"sent_id": [0, 2, 5, 3, 16, 1]} -{"sent_id": [1, 6, 4, 5, 3, 11]} -{"sent_id": [5, 2, 3, 6, 7, 4]} -{"sent_id": [4, 6, 1, 13, 5, 12]} -{"sent_id": [1, 4, 3, 8, 2, 9]} -{"sent_id": [2, 5, 4, 3, 1, 0]} -{"sent_id": [1, 2, 3, 6, 0, 5]} -{"sent_id": [8, 1, 4, 2, 0, 7]} -{"sent_id": [3, 1, 0, 8, 12, 18]} -{"sent_id": [13, 3, 0, 4, 5, 2]} -{"sent_id": [5, 2, 4, 3, 1, 11]} -{"sent_id": [3, 4, 12, 0, 11, 2]} -{"sent_id": [0, 2, 22, 4, 1, 3]} -{"sent_id": [3, 10, 2, 0, 1, 4]} -{"sent_id": [4, 5, 6, 10, 3, 11]} -{"sent_id": [5, 4, 0, 6, 1, 7]} -{"sent_id": [0, 3, 10, 1, 6, 2]} -{"sent_id": [1, 2, 0, 7, 3, 5]} -{"sent_id": [2, 4, 1, 5, 6, 11]} -{"sent_id": [3, 2, 5, 7, 4, 9]} -{"sent_id": [4, 3, 1, 0, 5, 11]} -{"sent_id": [3, 2, 1, 4, 6, 0]} -{"sent_id": [2, 3, 7, 12, 9, 4]} -{"sent_id": [9, 10, 11, 18, 4, 8]} -{"sent_id": [2, 4, 1, 0, 9, 5]} -{"sent_id": [0, 1, 2, 6, 5, 14]} -{"sent_id": [1, 8, 4, 3, 2, 0]} -{"sent_id": [1, 2, 0, 8, 4, 7]} -{"sent_id": [3, 2, 6, 4, 8, 1]} -{"sent_id": [3, 0, 9, 1, 10, 8]} -{"sent_id": [2, 3, 4, 5, 0, 1]} -{"sent_id": [1, 3, 2, 8, 9, 5]} -{"sent_id": [3, 11, 2, 6, 7, 13]} -{"sent_id": [17, 11, 1, 2, 3, 0]} -{"sent_id": [0, 4, 6, 5, 11, 2]} -{"sent_id": [2, 0, 4, 3, 1, 8]} -{"sent_id": [5, 6, 7, 9, 0, 3]} -{"sent_id": [0, 2, 3, 9, 4, 8]} -{"sent_id": [1, 0, 3, 6, 2, 7]} -{"sent_id": [4, 1, 3, 5, 2, 6]} -{"sent_id": [2, 3, 6, 7, 8, 9]} -{"sent_id": [1, 0, 3, 4, 5, 13]} -{"sent_id": [3, 1, 6, 2, 0, 5]} -{"sent_id": [2, 0, 4, 1, 9, 8]} -{"sent_id": [0, 15, 4, 3, 2, 1]} -{"sent_id": [6, 2, 7, 3, 8, 10]} -{"sent_id": [3, 1, 0, 17, 2, 12]} -{"sent_id": [4, 12, 5, 6, 9, 1]} -{"sent_id": [0, 1, 2, 4, 10, 6]} -{"sent_id": [0, 3, 6, 5, 4, 2]} -{"sent_id": [1, 0, 2, 5, 3, 10]} -{"sent_id": [3, 1, 0, 2, 5, 6]} -{"sent_id": [2, 5, 4, 1, 6, 9]} -{"sent_id": [3, 4, 1, 6, 2, 5]} -{"sent_id": [1, 3, 14, 2, 4, 13]} -{"sent_id": [1, 5, 0, 2, 11, 13]} -{"sent_id": [3, 2, 7, 4, 9, 11]} -{"sent_id": [11, 2, 3, 7, 1, 8]} -{"sent_id": [1, 0, 6, 2, 5, 7]} -{"sent_id": [1, 2, 4, 8, 6, 7]} -{"sent_id": [1, 10, 2, 4, 3, 11]} -{"sent_id": [5, 6, 16, 4, 1, 0]} -{"sent_id": [4, 1, 11, 5, 2, 3]} -{"sent_id": [10, 8, 1, 5, 2, 9]} -{"sent_id": [2, 4, 3, 12, 0, 1]} -{"sent_id": [2, 3, 6, 1, 4, 7]} -{"sent_id": [3, 5, 6, 4, 7, 9]} -{"sent_id": [1, 6, 0, 7, 2, 4]} -{"sent_id": [1, 2, 4, 5, 3, 0]} -{"sent_id": [4, 12, 1, 0, 11, 5]} -{"sent_id": [3, 1, 2, 4, 5, 14]} -{"sent_id": [2, 0, 3, 6, 7, 5]} -{"sent_id": [1, 2, 7, 11, 3, 4]} -{"sent_id": [0, 3, 5, 4, 1, 2]} -{"sent_id": [2, 4, 6, 1, 9, 8]} -{"sent_id": [3, 1, 2, 4, 5, 8]} -{"sent_id": [19, 5, 0, 14, 3, 18]} -{"sent_id": [1, 5, 4, 6, 9, 0]} -{"sent_id": [2, 1, 6, 0, 4, 3]} -{"sent_id": [5, 4, 1, 2, 3, 12]} -{"sent_id": [0, 12, 3, 2, 1, 11]} -{"sent_id": [0, 1, 6, 3, 2, 10]} -{"sent_id": [4, 15, 5, 0, 3, 14]} -{"sent_id": [1, 0, 4, 6, 3, 2]} -{"sent_id": [3, 5, 1, 10, 0, 2]} -{"sent_id": [3, 2, 0, 1, 7, 11]} -{"sent_id": [0, 4, 2, 11, 3, 10]} -{"sent_id": [3, 0, 2, 9, 6, 10]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [2, 0, 3, 10, 4, 17]} -{"sent_id": [3, 1, 7, 8, 5, 9]} -{"sent_id": [10, 2, 8, 3, 1, 5]} -{"sent_id": [5, 4, 11, 2, 6, 3]} -{"sent_id": [2, 0, 12, 9, 8, 3]} -{"sent_id": [0, 2, 1, 8, 3, 17]} -{"sent_id": [5, 9, 13, 2, 18, 6]} -{"sent_id": [0, 4, 2, 7, 3, 1]} -{"sent_id": [2, 1, 0, 3, 7, 9]} -{"sent_id": [0, 3, 1, 4, 2, 16]} -{"sent_id": [0, 3, 1, 4, 2, 5]} -{"sent_id": [3, 1, 5, 4, 0, 2]} -{"sent_id": [3, 0, 8, 14, 6, 7]} -{"sent_id": [2, 1, 5, 10, 4, 8]} -{"sent_id": [3, 12, 1, 2, 4, 5]} -{"sent_id": [1, 4, 3, 5, 2, 0]} -{"sent_id": [1, 2, 5, 18, 4, 0]} -{"sent_id": [1, 13, 15, 0, 2, 6]} -{"sent_id": [2, 3, 6, 10, 5, 13]} -{"sent_id": [1, 6, 5, 3, 7, 0]} -{"sent_id": [5, 6, 11, 0, 10, 1]} -{"sent_id": [2, 7, 9, 3, 16, 1]} -{"sent_id": [3, 1, 9, 2, 14, 0]} -{"sent_id": [5, 1, 8, 2, 6, 7]} -{"sent_id": [1, 3, 2, 4, 5, 6]} -{"sent_id": [4, 3, 8, 5, 0, 14]} -{"sent_id": [1, 2, 5, 9, 7, 8]} -{"sent_id": [2, 4, 7, 3, 10, 8]} -{"sent_id": [1, 5, 8, 7, 2, 11]} -{"sent_id": [2, 3, 0, 4, 1, 5]} -{"sent_id": [0, 4, 15, 1, 8, 5]} -{"sent_id": [1, 3, 2, 10, 0, 9]} -{"sent_id": [10, 4, 0, 2, 1, 6]} -{"sent_id": [2, 4, 6, 3, 8, 15]} -{"sent_id": [1, 4, 0, 3, 5, 2]} -{"sent_id": [14, 15, 3, 9, 22, 10]} -{"sent_id": [2, 15, 6, 11, 3, 13]} -{"sent_id": [1, 6, 7, 0, 5, 9]} -{"sent_id": [0, 2, 5, 1, 9, 7]} -{"sent_id": [5, 15, 0, 4, 16, 2]} -{"sent_id": [2, 4, 6, 8, 3, 10]} -{"sent_id": [2, 0, 1, 5, 12, 9]} -{"sent_id": [1, 2, 5, 0, 4, 7]} -{"sent_id": [2, 1, 0, 9, 10, 6]} -{"sent_id": [7, 3, 1, 5, 8, 6]} -{"sent_id": [3, 0, 4, 11, 1, 14]} -{"sent_id": [1, 6, 2, 5, 4, 8]} -{"sent_id": [0, 2, 1, 3, 4, 20]} -{"sent_id": [3, 2, 13, 15, 20, 1]} -{"sent_id": [4, 2, 6, 11, 1, 8]} -{"sent_id": [5, 6, 10, 2, 7, 3]} -{"sent_id": [3, 0, 11, 12, 5, 6]} -{"sent_id": [1, 3, 4, 5, 2, 0]} -{"sent_id": [3, 2, 1, 5, 6, 4]} -{"sent_id": [1, 2, 0, 5, 3, 8]} -{"sent_id": [1, 0, 2, 3, 5, 11]} -{"sent_id": [1, 2, 3, 7, 5, 0]} -{"sent_id": [0, 5, 1, 8, 3, 11]} -{"sent_id": [2, 1, 8, 3, 0, 5]} -{"sent_id": [5, 4, 10, 1, 11, 3]} -{"sent_id": [8, 9, 1, 0, 10, 2]} -{"sent_id": [5, 2, 1, 4, 9, 3]} -{"sent_id": [0, 2, 5, 3, 4, 1]} -{"sent_id": [0, 1, 3, 4, 2, 5]} -{"sent_id": [3, 0, 1, 10, 2, 5]} -{"sent_id": [1, 3, 2, 4, 0, 5]} -{"sent_id": [9, 3, 11, 1, 0, 2]} -{"sent_id": [1, 8, 4, 2, 3, 5]} -{"sent_id": [1, 2, 4, 3, 0, 5]} -{"sent_id": [3, 10, 12, 4, 1, 11]} -{"sent_id": [0, 6, 1, 19, 7, 2]} -{"sent_id": [1, 2, 3, 5, 8, 4]} -{"sent_id": [1, 9, 3, 8, 6, 2]} -{"sent_id": [9, 3, 10, 4, 7, 6]} -{"sent_id": [2, 3, 0, 7, 15, 8]} -{"sent_id": [10, 2, 1, 3, 4, 5]} -{"sent_id": [3, 1, 15, 2, 6, 0]} -{"sent_id": [6, 4, 7, 14, 3, 13]} -{"sent_id": [1, 2, 6, 11, 4, 9]} -{"sent_id": [3, 1, 2, 0, 7, 8]} -{"sent_id": [1, 6, 3, 4, 11, 5]} -{"sent_id": [1, 9, 3, 8, 5, 2]} -{"sent_id": [4, 12, 2, 6, 1, 0]} -{"sent_id": [1, 3, 0, 4, 5, 2]} -{"sent_id": [4, 1, 2, 3, 6, 7]} -{"sent_id": [1, 6, 0, 8, 5, 4]} -{"sent_id": [1, 2, 3, 5, 0, 10]} -{"sent_id": [3, 2, 4, 0, 6, 5]} -{"sent_id": [3, 2, 6, 1, 0, 9]} -{"sent_id": [1, 0, 14, 4, 2, 9]} -{"sent_id": [0, 1, 7, 4, 11, 3]} -{"sent_id": [3, 1, 5, 0, 19, 11]} -{"sent_id": [3, 4, 17, 1, 2, 14]} -{"sent_id": [8, 3, 2, 1, 4, 0]} -{"sent_id": [9, 5, 10, 4, 1, 12]} -{"sent_id": [1, 0, 9, 6, 3, 8]} -{"sent_id": [4, 1, 5, 17, 7, 8]} -{"sent_id": [0, 8, 1, 5, 9, 13]} -{"sent_id": [8, 1, 0, 9, 2, 4]} -{"sent_id": [4, 1, 0, 2, 5, 20]} -{"sent_id": [4, 5, 0, 1, 8, 2]} -{"sent_id": [0, 1, 4, 5, 19, 18]} -{"sent_id": [1, 0, 2, 3, 7, 9]} -{"sent_id": [2, 3, 1, 6, 13, 5]} -{"sent_id": [3, 0, 2, 1, 5, 9]} -{"sent_id": [2, 1, 11, 9, 7, 0]} -{"sent_id": [2, 8, 9, 4, 3, 1]} -{"sent_id": [2, 3, 4, 0, 5, 6]} -{"sent_id": [1, 3, 2, 15, 4, 11]} -{"sent_id": [2, 12, 4, 1, 0, 13]} -{"sent_id": [0, 2, 3, 4, 1, 17]} -{"sent_id": [3, 2, 1, 0, 5, 6]} -{"sent_id": [0, 4, 6, 5, 2, 1]} -{"sent_id": [2, 3, 4, 10, 1, 8]} -{"sent_id": [2, 0, 4, 1, 3, 8]} -{"sent_id": [2, 0, 1, 7, 3, 5]} -{"sent_id": [0, 1, 2, 4, 3, 5]} -{"sent_id": [3, 1, 2, 0, 4, 6]} -{"sent_id": [0, 2, 3, 4, 5, 1]} -{"sent_id": [4, 3, 8, 11, 12, 10]} -{"sent_id": [7, 17, 18, 8, 2, 15]} -{"sent_id": [1, 2, 3, 5, 6, 11]} -{"sent_id": [6, 5, 2, 0, 3, 1]} -{"sent_id": [1, 2, 13, 8, 3, 0]} -{"sent_id": [1, 0, 3, 7, 2, 15]} -{"sent_id": [1, 0, 2, 6, 3, 5]} -{"sent_id": [2, 1, 0, 3, 17, 18]} -{"sent_id": [0, 1, 2, 8, 10, 3]} -{"sent_id": [3, 5, 1, 0, 4, 18]} -{"sent_id": [11, 3, 1, 12, 0, 6]} -{"sent_id": [2, 3, 5, 4, 7, 0]} -{"sent_id": [2, 5, 4, 3, 1, 6]} -{"sent_id": [1, 3, 2, 5, 4, 0]} -{"sent_id": [3, 10, 0, 4, 1, 9]} -{"sent_id": [3, 7, 5, 9, 6, 8]} -{"sent_id": [1, 4, 0, 10, 3, 2]} -{"sent_id": [1, 15, 0, 16, 17, 12]} -{"sent_id": [0, 1, 3, 2, 5, 4]} -{"sent_id": [1, 2, 3, 11, 0, 4]} -{"sent_id": [0, 8, 3, 1, 7, 5]} -{"sent_id": [1, 2, 3, 4, 0, 10]} -{"sent_id": [0, 1, 13, 6, 7, 10]} -{"sent_id": [3, 4, 1, 5, 0, 12]} -{"sent_id": [4, 1, 3, 5, 2, 8]} -{"sent_id": [7, 1, 9, 0, 4, 2]} -{"sent_id": [1, 4, 3, 2, 0, 11]} -{"sent_id": [2, 3, 1, 8, 9, 6]} -{"sent_id": [2, 0, 6, 3, 7, 1]} -{"sent_id": [2, 1, 9, 4, 6, 0]} -{"sent_id": [0, 2, 8, 1, 6, 3]} -{"sent_id": [7, 2, 1, 10, 8, 15]} -{"sent_id": [4, 9, 5, 2, 19, 15]} -{"sent_id": [2, 1, 0, 18, 3, 9]} -{"sent_id": [1, 3, 4, 2, 10, 0]} -{"sent_id": [1, 0, 2, 9, 3, 8]} -{"sent_id": [15, 3, 4, 0, 1, 14]} -{"sent_id": [5, 3, 8, 9, 6, 10]} -{"sent_id": [3, 0, 1, 12, 11, 13]} -{"sent_id": [0, 1, 2, 4, 15, 9]} -{"sent_id": [4, 1, 2, 8, 3, 0]} -{"sent_id": [3, 4, 2, 1, 0, 5]} -{"sent_id": [1, 4, 3, 6, 5, 2]} -{"sent_id": [1, 3, 4, 2, 8, 0]} -{"sent_id": [2, 1, 0, 6, 10, 7]} -{"sent_id": [3, 4, 1, 0, 10, 8]} -{"sent_id": [4, 0, 14, 7, 6, 16]} -{"sent_id": [5, 6, 0, 2, 13, 3]} -{"sent_id": [2, 10, 6, 5, 1, 12]} -{"sent_id": [7, 0, 1, 2, 3, 5]} -{"sent_id": [7, 0, 5, 2, 1, 6]} -{"sent_id": [3, 1, 13, 4, 11, 12]} -{"sent_id": [0, 2, 1, 3, 7, 9]} -{"sent_id": [3, 15, 8, 1, 0, 4]} -{"sent_id": [5, 3, 1, 4, 2, 16]} -{"sent_id": [11, 10, 2, 9, 13, 1]} -{"sent_id": [6, 10, 15, 5, 16, 18]} -{"sent_id": [2, 3, 7, 1, 13, 5]} -{"sent_id": [1, 0, 10, 6, 8, 2]} -{"sent_id": [3, 2, 12, 17, 10, 1]} -{"sent_id": [1, 6, 3, 2, 0, 5]} -{"sent_id": [13, 0, 1, 2, 7, 6]} -{"sent_id": [1, 2, 3, 4, 5, 9]} -{"sent_id": [4, 3, 2, 1, 7, 15]} -{"sent_id": [1, 0, 4, 2, 12, 6]} -{"sent_id": [3, 10, 11, 12, 4, 2]} -{"sent_id": [1, 7, 9, 2, 8, 11]} -{"sent_id": [3, 1, 10, 0, 2, 6]} -{"sent_id": [2, 3, 0, 13, 1, 12]} -{"sent_id": [1, 5, 12, 17, 11, 10]} -{"sent_id": [1, 9, 2, 5, 4, 7]} -{"sent_id": [0, 1, 3, 7, 17, 18]} -{"sent_id": [1, 3, 4, 0, 8, 7]} -{"sent_id": [4, 1, 15, 14, 12, 2]} -{"sent_id": [1, 9, 2, 0, 3, 14]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [0, 1, 6, 2, 8, 7]} -{"sent_id": [4, 2, 6, 5, 3, 11]} -{"sent_id": [5, 6, 4, 10, 16, 1]} -{"sent_id": [4, 5, 1, 13, 3, 6]} -{"sent_id": [1, 4, 12, 3, 2, 0]} -{"sent_id": [3, 4, 6, 9, 5, 2]} -{"sent_id": [2, 0, 3, 14, 4, 7]} -{"sent_id": [0, 1, 3, 6, 10, 2]} -{"sent_id": [3, 4, 2, 0, 5, 9]} -{"sent_id": [1, 8, 0, 5, 10, 2]} -{"sent_id": [3, 4, 21, 0, 5, 14]} -{"sent_id": [0, 1, 5, 13, 14, 6]} -{"sent_id": [5, 8, 0, 2, 1, 7]} -{"sent_id": [2, 3, 0, 4, 9, 5]} -{"sent_id": [4, 3, 1, 2, 5, 9]} -{"sent_id": [2, 4, 3, 6, 12, 5]} -{"sent_id": [3, 1, 4, 2, 8, 0]} -{"sent_id": [4, 5, 13, 0, 1, 2]} -{"sent_id": [3, 2, 12, 10, 4, 15]} -{"sent_id": [1, 3, 7, 4, 6, 5]} -{"sent_id": [9, 0, 11, 10, 8, 1]} -{"sent_id": [2, 4, 3, 8, 0, 5]} -{"sent_id": [3, 20, 2, 1, 0, 19]} -{"sent_id": [4, 3, 2, 0, 1, 13]} -{"sent_id": [13, 2, 0, 5, 4, 9]} -{"sent_id": [1, 5, 7, 6, 15, 0]} -{"sent_id": [1, 0, 2, 3, 9, 6]} -{"sent_id": [3, 1, 9, 2, 8, 5]} -{"sent_id": [2, 1, 0, 3, 10, 8]} -{"sent_id": [5, 6, 14, 4, 8, 7]} -{"sent_id": [3, 8, 0, 2, 1, 9]} -{"sent_id": [1, 2, 9, 4, 3, 5]} -{"sent_id": [4, 1, 10, 0, 5, 9]} -{"sent_id": [3, 1, 4, 0, 7, 2]} -{"sent_id": [4, 0, 1, 11, 8, 6]} -{"sent_id": [1, 2, 6, 0, 5, 9]} -{"sent_id": [0, 5, 6, 7, 1, 22]} -{"sent_id": [3, 2, 4, 8, 5, 1]} -{"sent_id": [1, 2, 4, 3, 0, 5]} -{"sent_id": [5, 8, 1, 7, 0, 6]} -{"sent_id": [3, 1, 2, 4, 0, 7]} -{"sent_id": [1, 3, 2, 8, 4, 6]} -{"sent_id": [3, 0, 1, 7, 2, 6]} -{"sent_id": [1, 0, 2, 4, 3]} -{"sent_id": [1, 13, 2, 14, 3, 10]} -{"sent_id": [8, 1, 3, 2, 4, 13]} -{"sent_id": [1, 4, 5, 7, 0, 8]} -{"sent_id": [2, 4, 1, 5, 9, 3]} -{"sent_id": [7, 2, 4, 10, 5, 15]} -{"sent_id": [0, 5, 1, 12, 17, 6]} -{"sent_id": [3, 10, 1, 2, 7, 0]} -{"sent_id": [0, 4, 9, 2, 3, 6]} -{"sent_id": [8, 2, 9, 3, 1, 4]} -{"sent_id": [3, 13, 4, 0, 5, 9]} -{"sent_id": [1, 12, 0, 7, 2, 3]} -{"sent_id": [1, 15, 7, 2, 0, 6]} -{"sent_id": [1, 3, 0, 4, 9, 2]} -{"sent_id": [1, 2, 11, 6, 4, 7]} -{"sent_id": [4, 3, 2, 1, 6, 0]} -{"sent_id": [3, 1, 10, 4, 2, 0]} -{"sent_id": [2, 1, 0, 11, 17, 5]} -{"sent_id": [3, 15, 1, 6, 0, 8]} -{"sent_id": [3, 2, 1, 4, 6, 5]} -{"sent_id": [0, 8, 4, 1, 5, 9]} -{"sent_id": [3, 0, 8, 5, 2, 9]} -{"sent_id": [3, 13, 2, 5, 4, 1]} -{"sent_id": [4, 8, 2, 9, 16, 14]} -{"sent_id": [1, 4, 5, 2, 7, 6]} -{"sent_id": [1, 0, 3, 12, 2, 19]} -{"sent_id": [3, 4, 5, 1, 0, 10]} -{"sent_id": [0, 15, 2, 14, 16, 3]} -{"sent_id": [2, 6, 1, 10, 7, 9]} -{"sent_id": [1, 2, 5, 8, 7, 6]} -{"sent_id": [4, 13, 3, 7, 2, 1]} -{"sent_id": [1, 2, 10, 3, 6, 4]} -{"sent_id": [1, 2, 3, 6, 4, 17]} -{"sent_id": [1, 2, 5, 10, 4, 8]} -{"sent_id": [4, 3, 0, 1, 2, 5]} -{"sent_id": [0, 4, 5, 3, 1, 6]} -{"sent_id": [2, 1, 3, 0, 4, 9]} -{"sent_id": [3, 1, 2, 15, 8, 4]} -{"sent_id": [0, 5, 9, 1, 7, 13]} -{"sent_id": [0, 2, 1, 6, 4, 15]} -{"sent_id": [1, 2, 3, 0, 4, 7]} -{"sent_id": [3, 2, 16, 13, 1, 5]} -{"sent_id": [3, 1, 2, 6, 8, 4]} -{"sent_id": [9, 8, 7, 12, 11, 2]} -{"sent_id": [0, 3, 1, 2, 5, 12]} -{"sent_id": [6, 13, 5, 7, 10, 4]} -{"sent_id": [2, 19, 4, 8, 12, 18]} -{"sent_id": [2, 3, 10, 11, 1, 22]} -{"sent_id": [5, 3, 6, 11, 2, 24]} -{"sent_id": [13, 4, 1, 3, 15, 0]} -{"sent_id": [0, 3, 2, 1, 5, 6]} -{"sent_id": [4, 1, 10, 2, 3, 11]} -{"sent_id": [0, 3, 2, 8, 9, 1]} -{"sent_id": [2, 1, 5, 4, 3, 15]} -{"sent_id": [11, 0, 2, 15, 1, 7]} -{"sent_id": [10, 3, 1, 12, 0, 2]} -{"sent_id": [2, 7, 3, 5, 1, 11]} -{"sent_id": [5, 1, 14, 6, 7, 15]} -{"sent_id": [0, 9, 1, 4, 3, 2]} -{"sent_id": [5, 7, 3, 15, 0, 16]} -{"sent_id": [4, 6, 5, 3, 14, 15]} -{"sent_id": [1, 4, 2, 8, 6, 15]} -{"sent_id": [16, 4, 1, 3, 7, 11]} -{"sent_id": [3, 1, 4, 0, 20, 5]} -{"sent_id": [1, 2, 3, 9, 7, 4]} -{"sent_id": [1, 3, 11, 5, 7, 0]} -{"sent_id": [1, 3, 6, 7, 2, 0]} -{"sent_id": [2, 1, 12, 14, 5, 6]} -{"sent_id": [1, 2, 3, 4, 0, 8]} -{"sent_id": [0, 5, 7, 12, 15, 11]} -{"sent_id": [1, 2, 4, 3, 6, 5]} -{"sent_id": [3, 2, 1, 0, 4, 13]} -{"sent_id": [3, 9, 4, 11, 7, 6]} -{"sent_id": [10, 15, 3, 2, 8, 21]} -{"sent_id": [0, 4, 10, 16, 1, 3]} -{"sent_id": [14, 5, 3, 2, 4, 6]} -{"sent_id": [1, 3, 4, 2, 6, 14]} -{"sent_id": [7, 1, 2, 8, 5, 3]} -{"sent_id": [12, 3, 5, 1, 6, 10]} -{"sent_id": [1, 2, 7, 6, 16, 9]} -{"sent_id": [3, 1, 9, 2, 0, 13]} -{"sent_id": [1, 3, 12, 2, 6, 13]} -{"sent_id": [1, 0, 5, 2, 4, 3]} -{"sent_id": [0, 8, 2, 1, 7, 12]} -{"sent_id": [1, 2, 4, 5, 12, 3]} -{"sent_id": [2, 1, 8, 14, 5, 10]} -{"sent_id": [3, 1, 2, 7, 0, 8]} -{"sent_id": [3, 2, 8, 12, 7, 4]} -{"sent_id": [3, 2, 1, 0, 7, 8]} -{"sent_id": [2, 3, 9, 1, 14, 6]} -{"sent_id": [1, 15, 2, 5, 3, 16]} -{"sent_id": [2, 3, 12, 0, 10, 9]} -{"sent_id": [3, 1, 2, 4, 7, 5]} -{"sent_id": [2, 0, 5, 3, 1, 4]} -{"sent_id": [1, 11, 2, 0, 12, 7]} -{"sent_id": [5, 3, 1, 7, 13, 14]} -{"sent_id": [1, 3, 2, 4, 15, 10]} -{"sent_id": [3, 4, 6, 5, 8, 2]} -{"sent_id": [5, 4, 3, 1, 0, 2]} -{"sent_id": [1, 5, 4, 0, 2, 13]} -{"sent_id": [1, 3, 0, 2, 6, 5]} -{"sent_id": [1, 3, 4, 2, 9, 7]} -{"sent_id": [2, 0, 1, 16, 8, 6]} -{"sent_id": [2, 1, 16, 6, 4, 0]} -{"sent_id": [1, 2, 5, 8, 13, 10]} -{"sent_id": [5, 1, 4, 9, 0, 2]} -{"sent_id": [1, 0, 3, 5, 2, 4]} -{"sent_id": [1, 2, 4, 6, 5, 7]} -{"sent_id": [0, 1, 3, 2, 6, 4]} -{"sent_id": [4, 2, 5, 1, 3, 6]} -{"sent_id": [0, 7, 12, 15, 2, 18]} -{"sent_id": [3, 13, 0, 1, 12, 2]} -{"sent_id": [0, 5, 14, 2, 13, 12]} -{"sent_id": [1, 2, 11, 4, 21, 3]} -{"sent_id": [1, 7, 2, 0, 4, 13]} -{"sent_id": [1, 8, 9, 2, 10, 4]} -{"sent_id": [1, 2, 3, 15, 20, 5]} -{"sent_id": [1, 0, 2, 8, 5, 4]} -{"sent_id": [4, 3, 12, 2, 0, 5]} -{"sent_id": [0, 1, 8, 2, 6, 12]} -{"sent_id": [1, 2, 13, 5, 0, 8]} -{"sent_id": [2, 1, 3, 13, 14, 0]} -{"sent_id": [3, 1, 2, 6, 8, 7]} -{"sent_id": [2, 0, 3, 6, 4, 1]} -{"sent_id": [16, 0, 1, 2, 12, 17]} -{"sent_id": [5, 1, 6, 9, 2, 11]} -{"sent_id": [0, 2, 1, 5, 6, 10]} -{"sent_id": [0, 5, 4, 2, 11, 6]} -{"sent_id": [2, 1, 3, 4, 0, 11]} -{"sent_id": [3, 4, 1, 2, 0, 11]} -{"sent_id": [4, 0, 2, 5, 7, 11]} -{"sent_id": [3, 9, 10, 8, 4, 11]} -{"sent_id": [1, 9, 10, 6, 5, 8]} -{"sent_id": [1, 0, 2, 3, 4, 7]} -{"sent_id": [1, 2, 3, 8, 10, 15]} -{"sent_id": [3, 2, 1, 9, 5, 4]} -{"sent_id": [4, 1, 0, 7, 18, 2]} -{"sent_id": [3, 4, 12, 0, 5, 7]} -{"sent_id": [2, 3, 1, 0, 9, 5]} -{"sent_id": [0, 7, 3, 12, 1, 2]} -{"sent_id": [2, 0, 7, 1, 8, 4]} -{"sent_id": [3, 1, 14, 2, 7, 8]} -{"sent_id": [1, 2, 4, 5, 0, 13]} -{"sent_id": [0, 12, 4, 15, 3, 1]} -{"sent_id": [2, 1, 3, 0, 16, 5]} -{"sent_id": [1, 2, 3, 5, 4, 6]} -{"sent_id": [3, 5, 7, 6, 10, 1]} -{"sent_id": [2, 1, 3, 11, 12, 0]} -{"sent_id": [3, 4, 0, 1, 6, 5]} -{"sent_id": [3, 0, 8, 2, 1, 12]} -{"sent_id": [2, 5, 1, 4, 6, 7]} -{"sent_id": [1, 9, 13, 4, 8, 3]} -{"sent_id": [2, 5, 3, 7, 6, 4]} -{"sent_id": [1, 2, 4, 3, 13, 12]} -{"sent_id": [2, 3, 16, 11, 6, 10]} -{"sent_id": [3, 2, 1, 0, 8, 5]} -{"sent_id": [5, 4, 2, 0, 11, 3]} -{"sent_id": [2, 1, 8, 4, 3, 0]} -{"sent_id": [2, 0, 6, 4, 1, 22]} -{"sent_id": [1, 2, 4, 11, 8, 7]} -{"sent_id": [1, 6, 0, 2, 16, 7]} -{"sent_id": [4, 1, 5, 0, 3, 2]} -{"sent_id": [0, 7, 1, 3, 5, 2]} -{"sent_id": [10, 3, 11, 0, 4, 2]} -{"sent_id": [1, 6, 17, 5, 2, 7]} -{"sent_id": [1, 6, 3, 5, 2, 4]} -{"sent_id": [4, 0, 1, 12, 5, 8]} -{"sent_id": [0, 2, 4, 6, 3, 5]} -{"sent_id": [6, 4, 9, 7, 8, 1]} -{"sent_id": [2, 3, 4, 0, 1, 10]} -{"sent_id": [1, 2, 3, 4, 8, 5]} -{"sent_id": [13, 6, 2, 4, 1, 5]} -{"sent_id": [11, 5, 2, 0, 1, 3]} -{"sent_id": [1, 5, 2, 3, 0, 6]} -{"sent_id": [4, 2, 3, 7, 6, 16]} -{"sent_id": [4, 3, 0, 5, 1, 2]} -{"sent_id": [0, 1, 10, 5, 4, 2]} -{"sent_id": [1, 2, 3, 4, 5, 8]} -{"sent_id": [4, 1, 10, 5, 0, 8]} -{"sent_id": [0, 2, 3, 1, 5, 4]} -{"sent_id": [2, 5, 3, 10, 13, 18]} -{"sent_id": [0, 2, 1, 5, 6, 8]} -{"sent_id": [1, 6, 7, 0, 2, 3]} -{"sent_id": [1, 3, 4, 2, 5, 0]} -{"sent_id": [1, 13, 0, 4, 12, 6]} -{"sent_id": [1, 2, 11, 4, 0, 3]} -{"sent_id": [1, 2, 0, 4, 5, 12]} -{"sent_id": [1, 5, 11, 6, 2, 3]} -{"sent_id": [6, 0, 9, 1, 5, 8]} -{"sent_id": [3, 1, 2, 0, 10, 5]} -{"sent_id": [1, 3, 6, 2, 0, 4]} -{"sent_id": [1, 5, 0, 7, 2, 3]} -{"sent_id": [8, 0, 1, 7, 3, 5]} -{"sent_id": [2, 1, 0, 9, 3, 7]} -{"sent_id": [1, 4, 2, 17, 8, 3]} -{"sent_id": [4, 6, 1, 12, 0, 5]} -{"sent_id": [1, 2, 4, 3, 0, 10]} -{"sent_id": [4, 13, 6, 0, 3, 14]} -{"sent_id": [10, 9, 11, 1, 0, 12]} -{"sent_id": [5, 0, 3, 4, 2, 6]} -{"sent_id": [3, 11, 12, 0, 1, 5]} -{"sent_id": [1, 2, 0, 3, 4, 8]} -{"sent_id": [11, 7, 1, 3, 12, 5]} -{"sent_id": [1, 2, 3, 5, 8, 6]} -{"sent_id": [3, 1, 2, 0, 6, 4]} -{"sent_id": [4, 9, 7, 8, 1, 12]} -{"sent_id": [3, 2, 7, 1, 6, 8]} -{"sent_id": [2, 7, 1, 0, 4, 6]} -{"sent_id": [1, 2, 5, 3, 7, 4]} -{"sent_id": [2, 1, 8, 4, 0, 3]} -{"sent_id": [1, 2, 0, 9, 3, 13]} -{"sent_id": [0, 6, 15, 1, 7, 8]} -{"sent_id": [1, 3, 0, 4, 2, 6]} -{"sent_id": [4, 13, 2, 5, 12, 15]} -{"sent_id": [2, 1, 3, 4, 5, 0]} -{"sent_id": [1, 6, 5, 2, 4, 3]} -{"sent_id": [3, 4, 1, 2, 11, 5]} -{"sent_id": [1, 0, 4, 11, 5, 15]} -{"sent_id": [1, 9, 3, 8, 5, 17]} -{"sent_id": [1, 3, 2, 7, 0, 6]} -{"sent_id": [0, 2, 4, 1, 5, 8]} -{"sent_id": [9, 5, 11, 0, 3, 13]} -{"sent_id": [1, 3, 2, 5, 6, 4]} -{"sent_id": [4, 3, 0, 10, 5, 12]} -{"sent_id": [1, 2, 6, 7, 4, 3]} -{"sent_id": [2, 4, 5, 6, 7, 12]} -{"sent_id": [7, 2, 3, 4, 5, 8]} -{"sent_id": [1, 4, 0, 2, 9, 3]} -{"sent_id": [4, 11, 0, 1, 2, 6]} -{"sent_id": [0, 1, 8, 2, 6, 13]} -{"sent_id": [0, 9, 2, 6, 7, 5]} -{"sent_id": [2, 1, 0, 13, 14, 5]} -{"sent_id": [10, 1, 9, 4, 3, 6]} -{"sent_id": [2, 1, 9, 3, 10, 5]} -{"sent_id": [4, 1, 3, 6, 8, 2]} -{"sent_id": [13, 9, 6, 10, 1, 7]} -{"sent_id": [2, 0, 1, 3, 4, 5]} -{"sent_id": [3, 1, 2, 5, 4, 15]} -{"sent_id": [3, 1, 5, 2, 11, 4]} -{"sent_id": [3, 1, 2, 14, 5, 4]} -{"sent_id": [1, 3, 4, 10, 0, 13]} -{"sent_id": [1, 6, 4, 3, 2, 8]} -{"sent_id": [1, 2, 0, 4, 5, 9]} -{"sent_id": [1, 2, 5, 7, 0, 12]} -{"sent_id": [0, 3, 1, 6, 2, 7]} -{"sent_id": [1, 0, 4, 3, 2, 7]} -{"sent_id": [1, 11, 7, 5, 2, 9]} -{"sent_id": [1, 8, 4, 14, 10, 2]} -{"sent_id": [4, 2, 3, 16, 5, 0]} -{"sent_id": [1, 2, 5, 6, 0, 10]} -{"sent_id": [3, 4, 5, 6, 8, 7]} -{"sent_id": [2, 3, 4, 1, 13, 5]} -{"sent_id": [13, 1, 4, 2, 12, 9]} -{"sent_id": [0, 3, 2, 15, 1, 14]} -{"sent_id": [7, 6, 9, 8, 2, 4]} -{"sent_id": [0, 2, 1, 4, 14, 5]} -{"sent_id": [3, 1, 4, 2, 8, 6]} -{"sent_id": [0, 1, 3, 6, 4, 13]} -{"sent_id": [2, 5, 3, 4, 12, 8]} -{"sent_id": [1, 0, 2, 8, 7, 4]} -{"sent_id": [1, 2, 10, 0, 4, 7]} -{"sent_id": [4, 1, 5, 2, 18, 3]} -{"sent_id": [3, 0, 1, 2, 4, 5]} -{"sent_id": [0, 3, 1, 8, 12, 4]} -{"sent_id": [0, 1, 5, 2, 9, 3]} -{"sent_id": [2, 5, 1, 8, 7, 6]} -{"sent_id": [0, 4, 3, 11, 1, 10]} -{"sent_id": [3, 0, 12, 1, 10, 2]} -{"sent_id": [1, 3, 2, 8, 5, 0]} -{"sent_id": [1, 0, 2, 14, 4, 10]} -{"sent_id": [2, 1, 4, 5, 0, 11]} -{"sent_id": [8, 6, 9, 10, 11, 2]} -{"sent_id": [9, 3, 4, 1, 10, 2]} -{"sent_id": [3, 4, 2, 5, 9, 1]} -{"sent_id": [4, 11, 5, 2, 0, 8]} -{"sent_id": [4, 8, 6, 7, 3, 5]} -{"sent_id": [0, 3, 5, 1, 12, 2]} -{"sent_id": [1, 6, 2, 0, 5, 4]} -{"sent_id": [3, 1, 2, 12, 9, 6]} -{"sent_id": [3, 14, 0, 2, 4, 9]} -{"sent_id": [4, 1, 10, 0, 2, 8]} -{"sent_id": [1, 6, 0, 2, 9, 10]} -{"sent_id": [2, 4, 16, 8, 7, 6]} -{"sent_id": [15, 3, 17, 2, 0, 14]} -{"sent_id": [4, 5, 0, 17, 2, 3]} -{"sent_id": [3, 4, 5, 1, 2, 7]} -{"sent_id": [1, 9, 11, 0, 2, 8]} -{"sent_id": [3, 10, 9, 2, 1, 6]} -{"sent_id": [9, 1, 3, 4, 15, 0]} -{"sent_id": [3, 2, 4, 5, 14, 6]} -{"sent_id": [3, 1, 11, 2, 12, 6]} -{"sent_id": [15, 3, 4, 5, 11, 7]} -{"sent_id": [2, 3, 4, 6, 18, 0]} -{"sent_id": [4, 1, 8, 6, 2, 9]} -{"sent_id": [3, 2, 1, 5, 7, 11]} -{"sent_id": [0, 1, 4, 8, 12, 16]} -{"sent_id": [3, 1, 2, 10, 0, 4]} -{"sent_id": [3, 2, 4, 1, 0, 8]} -{"sent_id": [3, 1, 18, 12, 0, 11]} -{"sent_id": [2, 11, 1, 0, 4, 3]} -{"sent_id": [1, 2, 5, 0, 7, 4]} -{"sent_id": [2, 3, 0, 1, 9, 4]} -{"sent_id": [1, 2, 5, 3, 4, 11]} -{"sent_id": [3, 4, 0, 2, 10, 5]} -{"sent_id": [2, 1, 0, 5, 9, 10]} -{"sent_id": [2, 1, 4, 5, 8, 3]} -{"sent_id": [0, 4, 1, 3, 20, 15]} -{"sent_id": [1, 3, 13, 4, 0, 5]} -{"sent_id": [1, 2, 4, 0, 6, 9]} -{"sent_id": [1, 0, 2, 7, 6, 3]} -{"sent_id": [3, 2, 1, 0, 4, 10]} -{"sent_id": [1, 0, 2, 3, 6, 12]} -{"sent_id": [1, 2, 6, 13, 7, 12]} -{"sent_id": [6, 1, 9, 0, 10, 2]} -{"sent_id": [3, 4, 12, 0, 2, 9]} -{"sent_id": [3, 2, 10, 1, 0, 11]} -{"sent_id": [5, 3, 14, 1, 4, 2]} -{"sent_id": [6, 7, 8, 5, 14, 0]} -{"sent_id": [2, 3, 5, 4, 6, 1]} -{"sent_id": [2, 1, 4, 3, 0, 6]} -{"sent_id": [0, 1, 16, 10, 2, 3]} -{"sent_id": [3, 0, 2, 4, 13, 14]} -{"sent_id": [14, 15, 3, 2, 0, 4]} -{"sent_id": [3, 2, 4, 10, 5, 1]} -{"sent_id": [3, 0, 13, 4, 5, 1]} -{"sent_id": [1, 3, 13, 2, 5, 0]} -{"sent_id": [2, 1, 3, 10, 12, 11]} -{"sent_id": [1, 0, 2, 10, 4, 9]} -{"sent_id": [1, 0, 2, 7, 4, 9]} -{"sent_id": [9, 1, 0, 13, 3, 5]} -{"sent_id": [0, 4, 12, 2, 3, 13]} -{"sent_id": [4, 7, 1, 5, 3, 6]} -{"sent_id": [0, 5, 4, 1, 6, 2]} -{"sent_id": [5, 4, 8, 1, 9, 18]} -{"sent_id": [2, 7, 8, 6, 4, 5]} -{"sent_id": [3, 0, 1, 2, 11, 5]} -{"sent_id": [2, 4, 0, 9, 3, 5]} -{"sent_id": [0, 1, 2, 4, 8, 12]} -{"sent_id": [4, 3, 10, 0, 1, 6]} -{"sent_id": [3, 4, 0, 8, 2, 11]} -{"sent_id": [1, 2, 0, 3, 10, 12]} -{"sent_id": [2, 1, 3, 0, 8, 7]} -{"sent_id": [3, 8, 4, 2, 0, 1]} -{"sent_id": [0, 3, 1, 8, 2, 4]} -{"sent_id": [5, 0, 1, 2, 18, 7]} -{"sent_id": [0, 8, 10, 5, 2, 6]} -{"sent_id": [2, 4, 0, 3, 5, 1]} -{"sent_id": [4, 2, 0, 20, 3, 8]} -{"sent_id": [3, 1, 4, 2, 5, 0]} -{"sent_id": [3, 9, 1, 13, 4, 2]} -{"sent_id": [3, 0, 13, 9, 12, 7]} -{"sent_id": [0, 1, 2, 4, 5, 12]} -{"sent_id": [3, 1, 18, 15, 2, 5]} -{"sent_id": [2, 5, 3, 4, 6, 1]} -{"sent_id": [2, 3, 6, 1, 0, 7]} -{"sent_id": [1, 0, 5, 2, 3, 7]} -{"sent_id": [3, 8, 12, 5, 4, 0]} -{"sent_id": [4, 0, 3, 13, 1, 5]} -{"sent_id": [1, 4, 2, 3, 6, 11]} -{"sent_id": [1, 7, 2, 0, 10, 3]} -{"sent_id": [2, 3, 4, 0, 14, 6]} -{"sent_id": [1, 13, 14, 16, 4, 3]} -{"sent_id": [3, 20, 10, 11, 1, 9]} -{"sent_id": [0, 4, 3, 1, 11, 12]} -{"sent_id": [3, 1, 0, 6, 10, 7]} -{"sent_id": [3, 4, 11, 8, 0, 1]} -{"sent_id": [1, 5, 2, 3, 11, 6]} -{"sent_id": [3, 1, 10, 2, 5, 0]} -{"sent_id": [1, 2, 13, 4, 3, 15]} -{"sent_id": [0, 4, 12, 1, 9, 7]} -{"sent_id": [2, 3, 5, 0, 6, 4]} -{"sent_id": [0, 2, 1, 10, 3, 4]} -{"sent_id": [4, 9, 7, 1, 3, 8]} -{"sent_id": [1, 4, 5, 2, 9, 3]} -{"sent_id": [3, 2, 1, 4, 5, 6]} -{"sent_id": [5, 6, 7, 15, 17, 22]} -{"sent_id": [2, 1, 11, 0, 7, 12]} -{"sent_id": [2, 4, 1, 5, 0, 6]} -{"sent_id": [1, 3, 4, 5, 2, 0]} -{"sent_id": [3, 1, 0, 2, 8, 11]} -{"sent_id": [1, 2, 8, 5, 0, 4]} -{"sent_id": [3, 7, 2, 6, 5, 4]} -{"sent_id": [1, 2, 0, 6, 7, 10]} -{"sent_id": [3, 4, 6, 10, 8, 2]} -{"sent_id": [1, 2, 8, 7, 3, 4]} -{"sent_id": [4, 3, 7, 2, 5, 11]} -{"sent_id": [4, 3, 1, 5, 2, 0]} -{"sent_id": [4, 2, 11, 3, 1, 10]} -{"sent_id": [2, 1, 3, 5, 11, 4]} -{"sent_id": [3, 4, 9, 0, 1, 2]} -{"sent_id": [4, 15, 2, 5, 16, 1]} -{"sent_id": [3, 1, 7, 12, 4, 0]} -{"sent_id": [9, 1, 14, 16, 5, 11]} -{"sent_id": [1, 2, 7, 0, 11, 9]} -{"sent_id": [0, 11, 3, 4, 1, 2]} -{"sent_id": [4, 19, 5, 12, 6, 18]} -{"sent_id": [3, 1, 4, 0, 2, 9]} -{"sent_id": [1, 2, 7, 6, 9, 5]} -{"sent_id": [9, 1, 0, 8, 6, 3]} -{"sent_id": [2, 3, 1, 0, 11, 5]} -{"sent_id": [3, 0, 1, 2, 4, 7]} -{"sent_id": [9, 3, 4, 1, 0, 5]} -{"sent_id": [1, 3, 5, 2, 11, 6]} -{"sent_id": [15, 11, 8, 0, 1, 4]} -{"sent_id": [1, 2, 3, 4, 9, 6]} -{"sent_id": [6, 2, 1, 0, 3, 5]} -{"sent_id": [1, 2, 3, 0, 10, 9]} -{"sent_id": [3, 2, 1, 9, 0, 4]} -{"sent_id": [2, 9, 3, 0, 14, 7]} -{"sent_id": [0, 1, 2, 12, 17, 11]} -{"sent_id": [3, 2, 5, 1, 0, 4]} -{"sent_id": [1, 4, 0, 3, 2, 15]} -{"sent_id": [0, 9, 2, 3, 1, 7]} -{"sent_id": [2, 1, 5, 10, 6, 11]} -{"sent_id": [3, 0, 2, 1, 11, 4]} -{"sent_id": [5, 0, 1, 2, 4, 7]} -{"sent_id": [0, 7, 3, 5, 9, 1]} -{"sent_id": [2, 3, 1, 11, 4, 5]} -{"sent_id": [1, 0, 8, 2, 13, 15]} -{"sent_id": [1, 2, 11, 7, 12, 9]} -{"sent_id": [2, 1, 0, 5, 6, 11]} -{"sent_id": [1, 2, 7, 6, 8, 3]} -{"sent_id": [0, 3, 11, 12, 13, 7]} -{"sent_id": [2, 3, 4, 6, 0, 5]} -{"sent_id": [1, 2, 4, 5, 10, 9]} -{"sent_id": [3, 5, 0, 1, 4, 10]} -{"sent_id": [0, 1, 4, 8, 3, 10]} -{"sent_id": [3, 1, 7, 6, 2, 13]} -{"sent_id": [0, 4, 12, 6, 1, 2]} -{"sent_id": [1, 2, 9, 0, 4, 5]} -{"sent_id": [2, 3, 4, 5, 0, 16]} -{"sent_id": [1, 5, 2, 3, 4, 0]} -{"sent_id": [6, 1, 7, 0, 13, 8]} -{"sent_id": [0, 5, 3, 4, 2, 7]} -{"sent_id": [0, 5, 14, 13, 2, 6]} -{"sent_id": [3, 4, 5, 7, 16, 6]} -{"sent_id": [15, 16, 3, 0, 5, 4]} -{"sent_id": [1, 3, 5, 4, 2, 6]} -{"sent_id": [3, 4, 8, 2, 1, 6]} -{"sent_id": [3, 1, 0, 2, 5, 6]} -{"sent_id": [4, 1, 5, 6, 17, 18]} -{"sent_id": [4, 2, 16, 1, 0, 3]} -{"sent_id": [2, 4, 1, 3, 7, 5]} -{"sent_id": [2, 3, 0, 1, 15, 8]} -{"sent_id": [2, 3, 4, 0, 17, 6]} -{"sent_id": [3, 5, 0, 2, 1, 6]} -{"sent_id": [3, 0, 11, 4, 1, 12]} -{"sent_id": [1, 2, 22, 5, 10, 11]} -{"sent_id": [5, 4, 3, 2, 11, 6]} -{"sent_id": [3, 2, 14, 15, 1, 0]} -{"sent_id": [0, 1, 6, 3, 8, 4]} -{"sent_id": [4, 1, 3, 7, 2, 16]} -{"sent_id": [3, 17, 4, 1, 16, 0]} -{"sent_id": [3, 2, 9, 13, 17, 1]} -{"sent_id": [3, 1, 10, 2, 4, 12]} -{"sent_id": [3, 4, 7, 6, 1, 9]} -{"sent_id": [0, 2, 7, 5, 6, 9]} -{"sent_id": [1, 2, 5, 4, 10, 6]} -{"sent_id": [3, 4, 0, 6, 1, 2]} -{"sent_id": [7, 3, 1, 0, 4, 2]} -{"sent_id": [1, 3, 5, 2, 4, 12]} -{"sent_id": [2, 1, 5, 9, 4, 3]} -{"sent_id": [3, 2, 20, 7, 1, 8]} -{"sent_id": [2, 3, 1, 6, 7, 8]} -{"sent_id": [2, 3, 0, 6, 5, 1]} -{"sent_id": [4, 5, 0, 7, 6, 9]} -{"sent_id": [1, 11, 5, 2, 3, 0]} -{"sent_id": [3, 2, 15, 4, 6, 7]} -{"sent_id": [1, 0, 11, 2, 14, 6]} -{"sent_id": [1, 2, 4, 12, 3, 8]} -{"sent_id": [0, 6, 4, 18, 3, 5]} -{"sent_id": [2, 1, 4, 3, 0, 5]} -{"sent_id": [0, 8, 16, 1, 2, 18]} -{"sent_id": [4, 5, 16, 6, 13, 0]} -{"sent_id": [4, 5, 0, 11, 1, 16]} -{"sent_id": [1, 3, 0, 4, 9, 2]} -{"sent_id": [1, 2, 8, 0, 6, 7]} -{"sent_id": [3, 12, 2, 5, 1, 13]} -{"sent_id": [2, 1, 10, 3, 0, 12]} -{"sent_id": [0, 1, 3, 2, 12, 13]} -{"sent_id": [2, 1, 0, 4, 5, 3]} -{"sent_id": [3, 2, 4, 9, 10, 0]} -{"sent_id": [1, 5, 2, 0, 6, 8]} -{"sent_id": [1, 2, 15, 5, 4, 3]} -{"sent_id": [4, 6, 10, 14, 16, 15]} -{"sent_id": [3, 2, 1, 4, 6, 5]} -{"sent_id": [3, 11, 1, 0, 2, 17]} -{"sent_id": [3, 4, 8, 6, 1, 2]} -{"sent_id": [4, 2, 3, 1, 10, 5]} -{"sent_id": [0, 1, 2, 10, 7, 5]} -{"sent_id": [4, 3, 2, 1, 0, 5]} -{"sent_id": [0, 4, 2, 3, 9, 7]} -{"sent_id": [1, 2, 10, 8, 11, 9]} -{"sent_id": [3, 1, 0, 9, 6, 5]} -{"sent_id": [2, 0, 3, 16, 10, 9]} -{"sent_id": [1, 3, 2, 4, 12, 11]} -{"sent_id": [0, 8, 1, 11, 2, 6]} -{"sent_id": [0, 3, 4, 11, 1, 2]} -{"sent_id": [1, 2, 8, 3, 4, 5]} -{"sent_id": [3, 1, 8, 4, 2, 0]} -{"sent_id": [10, 6, 14, 4, 5, 3]} -{"sent_id": [3, 5, 0, 6, 2, 4]} -{"sent_id": [7, 8, 12, 18, 11, 16]} -{"sent_id": [1, 3, 4, 5, 2, 0]} -{"sent_id": [0, 2, 5, 11, 3, 4]} -{"sent_id": [1, 0, 6, 2, 15, 8]} -{"sent_id": [0, 1, 9, 10, 2, 11]} -{"sent_id": [5, 16, 7, 4, 18, 6]} -{"sent_id": [1, 3, 2, 6, 13, 4]} -{"sent_id": [3, 1, 11, 0, 2, 4]} -{"sent_id": [3, 0, 12, 1, 2, 13]} -{"sent_id": [3, 4, 1, 0, 12, 7]} -{"sent_id": [1, 7, 2, 9, 0, 3]} -{"sent_id": [3, 2, 1, 8, 10, 4]} -{"sent_id": [16, 0, 3, 2, 4, 1]} -{"sent_id": [3, 4, 18, 6, 17, 7]} -{"sent_id": [2, 1, 4, 6, 8, 0]} -{"sent_id": [3, 2, 1, 4, 0, 10]} -{"sent_id": [4, 1, 5, 2, 3, 0]} -{"sent_id": [3, 1, 11, 16, 12, 5]} -{"sent_id": [1, 6, 2, 4, 9, 0]} -{"sent_id": [1, 3, 2, 6, 4, 10]} -{"sent_id": [3, 4, 5, 0, 6, 13]} -{"sent_id": [5, 1, 0, 6, 4, 12]} -{"sent_id": [0, 2, 3, 1, 5, 6]} -{"sent_id": [3, 2, 5, 0, 1, 7]} -{"sent_id": [5, 3, 1, 0, 4, 7]} -{"sent_id": [6, 0, 3, 11, 5, 4]} -{"sent_id": [0, 2, 1, 8, 4, 10]} -{"sent_id": [0, 3, 10, 12, 6, 8]} -{"sent_id": [6, 4, 3, 2, 5, 17]} -{"sent_id": [4, 2, 18, 3, 1, 6]} -{"sent_id": [4, 3, 1, 2, 0, 5]} -{"sent_id": [1, 2, 4, 5, 0, 7]} -{"sent_id": [1, 2, 11, 3, 8, 4]} -{"sent_id": [3, 5, 1, 0, 2, 9]} -{"sent_id": [1, 5, 2, 4, 13, 17]} -{"sent_id": [1, 4, 5, 2, 3, 6]} -{"sent_id": [5, 2, 17, 7, 1, 6]} -{"sent_id": [1, 4, 3, 0, 2, 18]} -{"sent_id": [3, 4, 2, 1, 0, 8]} -{"sent_id": [3, 1, 0, 5, 2, 4]} -{"sent_id": [5, 0, 16, 12, 15, 6]} -{"sent_id": [1, 3, 2, 14, 8, 11]} -{"sent_id": [0, 2, 6, 1, 5, 3]} -{"sent_id": [4, 1, 5, 10, 11, 0]} -{"sent_id": [1, 7, 0, 3, 11, 2]} -{"sent_id": [1, 13, 0, 12, 3, 5]} -{"sent_id": [5, 0, 1, 8, 15, 11]} -{"sent_id": [1, 3, 4, 6, 2, 15]} -{"sent_id": [4, 3, 16, 8, 1, 7]} -{"sent_id": [2, 3, 4, 1, 0, 10]} -{"sent_id": [3, 7, 0, 1, 4, 5]} -{"sent_id": [2, 1, 5, 4, 3, 6]} -{"sent_id": [10, 2, 3, 5, 6, 11]} -{"sent_id": [3, 13, 1, 4, 6, 7]} -{"sent_id": [0, 3, 8, 15, 1, 14]} -{"sent_id": [4, 6, 5, 14, 15, 9]} -{"sent_id": [1, 4, 2, 0, 8, 6]} -{"sent_id": [5, 1, 7, 14, 2, 4]} -{"sent_id": [4, 3, 2, 5, 11, 7]} -{"sent_id": [3, 2, 0, 1, 4, 8]} -{"sent_id": [0, 1, 3, 2, 4, 7]} -{"sent_id": [7, 4, 3, 1, 2, 5]} -{"sent_id": [0, 5, 4, 1, 3, 11]} -{"sent_id": [1, 2, 3, 0, 7, 5]} -{"sent_id": [5, 3, 7, 15, 17, 9]} -{"sent_id": [3, 4, 5, 12, 13, 1]} -{"sent_id": [3, 0, 5, 13, 2, 14]} -{"sent_id": [1, 3, 2, 8, 6, 4]} -{"sent_id": [6, 1, 16, 12, 7, 0]} -{"sent_id": [3, 8, 4, 2, 5, 9]} -{"sent_id": [0, 1, 8, 5, 3, 13]} -{"sent_id": [1, 4, 5, 3, 2, 17]} -{"sent_id": [2, 1, 3, 4, 5, 9]} -{"sent_id": [3, 2, 4, 1, 5, 9]} -{"sent_id": [1, 11, 2, 5, 3, 0]} -{"sent_id": [1, 2, 0, 3, 6, 7]} -{"sent_id": [3, 1, 2, 19, 0, 12]} -{"sent_id": [3, 4, 11, 0, 1, 5]} -{"sent_id": [1, 2, 4, 9, 0, 15]} -{"sent_id": [1, 3, 2, 4, 0, 9]} -{"sent_id": [6, 3, 13, 15, 4, 0]} -{"sent_id": [6, 15, 13, 14, 17, 3]} -{"sent_id": [0, 1, 12, 2, 7, 3]} -{"sent_id": [1, 4, 0, 2, 3, 7]} -{"sent_id": [9, 3, 4, 0, 1, 7]} -{"sent_id": [1, 11, 2, 0, 3, 10]} -{"sent_id": [1, 2, 4, 3, 5, 11]} -{"sent_id": [1, 2, 3, 5, 0, 7]} -{"sent_id": [1, 4, 0, 2, 3, 5]} -{"sent_id": [2, 3, 13, 4, 1, 0]} -{"sent_id": [8, 4, 6, 9, 7, 10]} -{"sent_id": [3, 0, 2, 1, 14, 15]} -{"sent_id": [0, 3, 1, 2, 4, 13]} -{"sent_id": [2, 4, 5, 1, 9, 6]} -{"sent_id": [1, 4, 2, 3, 13, 17]} -{"sent_id": [8, 2, 3, 1, 6, 7]} -{"sent_id": [3, 7, 6, 4, 9, 5]} -{"sent_id": [0, 3, 2, 7, 6, 4]} -{"sent_id": [0, 3, 2, 1, 6, 5]} -{"sent_id": [0, 2, 3, 1, 6, 5]} -{"sent_id": [2, 4, 1, 7, 8, 5]} -{"sent_id": [3, 0, 14, 2, 1, 15]} -{"sent_id": [1, 14, 3, 2, 6, 10]} -{"sent_id": [10, 3, 4, 5, 1, 7]} -{"sent_id": [5, 4, 6, 7, 3, 1]} -{"sent_id": [2, 9, 1, 5, 8, 12]} -{"sent_id": [3, 1, 2, 4, 0, 9]} -{"sent_id": [3, 4, 0, 1, 2, 17]} -{"sent_id": [2, 4, 3, 5, 12, 6]} -{"sent_id": [6, 1, 4, 2, 10, 3]} -{"sent_id": [4, 7, 9, 15, 17, 8]} -{"sent_id": [4, 3, 1, 5, 2, 0]} -{"sent_id": [4, 0, 1, 10, 8, 2]} -{"sent_id": [3, 4, 0, 11, 2, 1]} -{"sent_id": [3, 0, 4, 1, 2, 11]} -{"sent_id": [5, 1, 13, 14, 12, 17]} -{"sent_id": [8, 5, 2, 16, 9, 7]} -{"sent_id": [0, 3, 4, 1, 9, 6]} -{"sent_id": [4, 0, 1, 2, 3, 13]} -{"sent_id": [2, 3, 4, 1, 13, 7]} -{"sent_id": [2, 1, 3, 14, 15, 6]} -{"sent_id": [7, 8, 10, 2, 9, 3]} -{"sent_id": [2, 3, 4, 5, 9, 8]} -{"sent_id": [3, 9, 4, 2, 1, 6]} -{"sent_id": [3, 2, 4, 5, 8, 10]} -{"sent_id": [3, 4, 2, 6, 5, 7]} -{"sent_id": [5, 4, 1, 3, 9, 16]} -{"sent_id": [9, 2, 0, 10, 3, 11]} -{"sent_id": [4, 9, 3, 0, 5, 10]} -{"sent_id": [2, 1, 12, 3, 11, 0]} -{"sent_id": [1, 4, 13, 12, 9, 3]} -{"sent_id": [0, 2, 1, 10, 5, 12]} -{"sent_id": [1, 5, 6, 4, 2, 3]} -{"sent_id": [3, 12, 4, 0, 7, 8]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [0, 4, 3, 10, 17, 1]} -{"sent_id": [1, 6, 2, 5, 7, 8]} -{"sent_id": [5, 3, 2, 16, 11, 13]} -{"sent_id": [1, 2, 11, 0, 12, 10]} -{"sent_id": [3, 2, 1, 4, 11, 9]} -{"sent_id": [3, 1, 8, 2, 6, 9]} -{"sent_id": [0, 3, 1, 4, 2, 7]} -{"sent_id": [4, 6, 3, 2, 5, 7]} -{"sent_id": [3, 4, 5, 2, 8, 6]} -{"sent_id": [2, 11, 1, 3, 0, 6]} -{"sent_id": [1, 6, 0, 3, 12, 9]} -{"sent_id": [1, 7, 6, 9, 4, 5]} -{"sent_id": [1, 2, 6, 5, 4, 0]} -{"sent_id": [2, 3, 4, 9, 8, 12]} -{"sent_id": [4, 3, 0, 9, 2, 1]} -{"sent_id": [3, 13, 2, 17, 1, 18]} -{"sent_id": [2, 1, 6, 8, 5, 11]} -{"sent_id": [2, 3, 1, 0, 6, 8]} -{"sent_id": [1, 6, 0, 5, 7, 2]} -{"sent_id": [5, 7, 0, 1, 2, 3]} -{"sent_id": [1, 3, 2, 7, 4, 0]} -{"sent_id": [1, 3, 4, 9, 2, 5]} -{"sent_id": [5, 9, 0, 13, 4, 3]} -{"sent_id": [11, 4, 1, 0, 5, 8]} -{"sent_id": [2, 1, 7, 0, 3, 8]} -{"sent_id": [2, 1, 4, 3, 13, 14]} -{"sent_id": [3, 8, 0, 1, 2, 4]} -{"sent_id": [1, 12, 2, 3, 0, 13]} -{"sent_id": [3, 2, 4, 5, 0, 7]} -{"sent_id": [2, 0, 11, 10, 13, 3]} -{"sent_id": [2, 6, 10, 12, 1, 5]} -{"sent_id": [1, 6, 4, 0, 16, 2]} -{"sent_id": [1, 3, 2, 6, 5, 4]} -{"sent_id": [5, 14, 12, 15, 13, 17]} -{"sent_id": [3, 4, 11, 2, 10, 0]} -{"sent_id": [0, 10, 4, 6, 2, 5]} -{"sent_id": [3, 5, 1, 11, 10, 6]} -{"sent_id": [0, 10, 7, 5, 1, 3]} -{"sent_id": [11, 0, 1, 2, 12, 7]} -{"sent_id": [3, 4, 0, 8, 1, 14]} -{"sent_id": [3, 1, 2, 9, 7, 5]} -{"sent_id": [0, 3, 4, 1, 2, 15]} -{"sent_id": [3, 0, 12, 2, 1, 13]} -{"sent_id": [2, 0, 1, 3, 5, 4]} -{"sent_id": [1, 0, 2, 9, 8, 6]} -{"sent_id": [8, 2, 9, 16, 19, 3]} -{"sent_id": [1, 0, 10, 4, 2, 3]} -{"sent_id": [1, 7, 2, 3, 4, 0]} -{"sent_id": [1, 4, 8, 2, 3, 0]} -{"sent_id": [4, 3, 12, 0, 15, 5]} -{"sent_id": [1, 2, 3, 8, 5, 0]} -{"sent_id": [3, 0, 4, 1, 10, 12]} -{"sent_id": [1, 13, 0, 11, 19, 12]} -{"sent_id": [1, 4, 2, 6, 0, 7]} -{"sent_id": [0, 4, 5, 3, 2, 8]} -{"sent_id": [3, 10, 0, 1, 4, 2]} -{"sent_id": [2, 8, 7, 0, 3, 1]} -{"sent_id": [4, 3, 0, 1, 11, 8]} -{"sent_id": [1, 2, 6, 9, 7, 4]} -{"sent_id": [1, 16, 15, 0, 11, 8]} -{"sent_id": [3, 5, 4, 0, 2, 9]} -{"sent_id": [1, 4, 5, 2, 0, 7]} -{"sent_id": [5, 8, 3, 11, 0, 15]} -{"sent_id": [4, 2, 3, 6, 11, 1]} -{"sent_id": [1, 6, 10, 2, 16, 0]} -{"sent_id": [11, 14, 0, 16, 10, 15]} -{"sent_id": [1, 3, 4, 8, 2, 12]} -{"sent_id": [3, 1, 0, 9, 2, 6]} -{"sent_id": [0, 1, 4, 2, 8, 6]} -{"sent_id": [1, 7, 12, 2, 3, 0]} -{"sent_id": [5, 7, 1, 2, 8, 6]} -{"sent_id": [1, 2, 0, 6, 5, 4]} -{"sent_id": [1, 0, 2, 8, 10, 11]} -{"sent_id": [11, 2, 4, 7, 6, 3]} -{"sent_id": [3, 1, 2, 9, 8, 7]} -{"sent_id": [4, 1, 2, 3, 5, 6]} -{"sent_id": [1, 2, 10, 7, 3, 4]} -{"sent_id": [2, 4, 3, 5, 10, 6]} -{"sent_id": [2, 3, 4, 8, 1, 5]} -{"sent_id": [5, 0, 1, 4, 2, 12]} -{"sent_id": [3, 2, 10, 13, 1, 8]} -{"sent_id": [1, 2, 5, 0, 4, 3]} -{"sent_id": [3, 1, 2, 0, 12, 9]} -{"sent_id": [0, 3, 10, 1, 9, 19]} -{"sent_id": [1, 7, 9, 12, 8, 10]} -{"sent_id": [3, 13, 0, 1, 5, 2]} -{"sent_id": [4, 5, 7, 0, 2, 11]} -{"sent_id": [0, 2, 1, 4, 18, 3]} -{"sent_id": [4, 0, 5, 3, 14, 1]} -{"sent_id": [2, 1, 11, 0, 3, 9]} -{"sent_id": [1, 2, 5, 0, 4, 3]} -{"sent_id": [2, 3, 5, 7, 9, 6]} -{"sent_id": [2, 8, 0, 3, 11, 1]} -{"sent_id": [4, 1, 2, 0, 6, 3]} -{"sent_id": [1, 2, 0, 3, 5, 10]} -{"sent_id": [1, 2, 4, 14, 5, 3]} -{"sent_id": [0, 13, 3, 2, 14, 15]} -{"sent_id": [1, 3, 5, 2, 14, 0]} -{"sent_id": [0, 1, 3, 4, 2, 9]} -{"sent_id": [1, 2, 0, 3, 12, 6]} -{"sent_id": [5, 6, 7, 13, 2, 15]} -{"sent_id": [10, 4, 2, 1, 7, 15]} -{"sent_id": [1, 2, 3, 4, 10, 7]} -{"sent_id": [1, 3, 4, 8, 17, 7]} -{"sent_id": [15, 3, 4, 2, 5, 10]} -{"sent_id": [2, 7, 3, 1, 0, 6]} -{"sent_id": [0, 1, 7, 4, 2, 5]} -{"sent_id": [2, 13, 1, 9, 10, 0]} -{"sent_id": [2, 3, 10, 1, 15, 17]} -{"sent_id": [2, 0, 1, 4, 3]} -{"sent_id": [1, 10, 3, 2, 7, 9]} -{"sent_id": [1, 2, 0, 4, 5, 10]} -{"sent_id": [3, 0, 9, 11, 1, 2]} -{"sent_id": [1, 5, 6, 7, 10, 11]} -{"sent_id": [0, 5, 1, 10, 9, 7]} -{"sent_id": [0, 4, 6, 1, 8, 9]} -{"sent_id": [2, 1, 4, 5, 0, 3]} -{"sent_id": [2, 9, 3, 11, 0, 4]} -{"sent_id": [4, 0, 12, 10, 1, 3]} -{"sent_id": [2, 4, 8, 1, 3, 6]} -{"sent_id": [2, 1, 6, 5, 7, 0]} -{"sent_id": [1, 2, 5, 8, 0, 4]} -{"sent_id": [4, 11, 1, 0, 2, 3]} -{"sent_id": [1, 9, 2, 3, 0, 5]} -{"sent_id": [9, 4, 1, 3, 0, 13]} -{"sent_id": [0, 15, 2, 1, 9, 16]} -{"sent_id": [2, 4, 3, 1, 9, 8]} -{"sent_id": [5, 12, 0, 9, 15, 1]} -{"sent_id": [4, 3, 1, 2, 5, 7]} -{"sent_id": [3, 0, 1, 8, 4, 10]} -{"sent_id": [3, 2, 5, 14, 19, 1]} -{"sent_id": [1, 0, 2, 7, 5, 12]} -{"sent_id": [3, 1, 10, 12, 4, 7]} -{"sent_id": [11, 6, 14, 2, 5, 0]} -{"sent_id": [3, 4, 2, 1, 5, 6]} -{"sent_id": [3, 1, 2, 8, 4, 13]} -{"sent_id": [3, 1, 4, 2, 6, 13]} -{"sent_id": [0, 16, 2, 3, 1, 4]} -{"sent_id": [3, 1, 4, 2, 0, 11]} -{"sent_id": [0, 4, 3, 5, 8, 17]} -{"sent_id": [1, 8, 2, 3, 7, 0]} -{"sent_id": [1, 6, 7, 12, 10, 2]} -{"sent_id": [0, 6, 1, 2, 4, 5]} -{"sent_id": [1, 2, 3, 8, 4, 9]} -{"sent_id": [3, 0, 5, 1, 2, 6]} -{"sent_id": [1, 2, 3, 7, 0, 10]} -{"sent_id": [0, 3, 1, 5, 4, 2]} -{"sent_id": [2, 3, 5, 4, 6, 9]} -{"sent_id": [2, 10, 3, 4, 16, 0]} -{"sent_id": [2, 4, 11, 8, 5, 0]} -{"sent_id": [1, 4, 2, 5, 0, 6]} -{"sent_id": [1, 12, 3, 8, 2, 9]} -{"sent_id": [1, 3, 4, 2, 5, 0]} -{"sent_id": [1, 3, 2, 4, 5, 6]} -{"sent_id": [3, 1, 0, 8, 7, 5]} -{"sent_id": [1, 7, 6, 2, 18, 11]} -{"sent_id": [3, 1, 2, 5, 0, 4]} -{"sent_id": [3, 1, 15, 0, 4, 10]} -{"sent_id": [3, 0, 6, 2, 5, 1]} -{"sent_id": [0, 1, 3, 16, 2, 7]} -{"sent_id": [2, 3, 1, 6, 4, 8]} -{"sent_id": [2, 3, 7, 1, 4, 8]} -{"sent_id": [3, 9, 2, 10, 1, 12]} -{"sent_id": [4, 5, 9, 0, 10, 3]} -{"sent_id": [2, 1, 5, 8, 9, 0]} -{"sent_id": [9, 0, 1, 5, 2, 10]} -{"sent_id": [2, 0, 3, 20, 13, 5]} -{"sent_id": [1, 3, 0, 9, 4, 2]} -{"sent_id": [5, 1, 16, 0, 6, 17]} -{"sent_id": [2, 1, 3, 7, 19, 10]} -{"sent_id": [4, 5, 2, 0, 1, 3]} -{"sent_id": [3, 8, 2, 6, 4, 5]} -{"sent_id": [4, 3, 11, 0, 2, 1]} -{"sent_id": [4, 5, 0, 13, 1, 2]} -{"sent_id": [3, 2, 1, 0, 16, 7]} -{"sent_id": [4, 3, 6, 2, 5, 10]} -{"sent_id": [1, 3, 2, 0, 10, 9]} -{"sent_id": [11, 2, 6, 5, 9, 12]} -{"sent_id": [3, 5, 9, 10, 4, 2]} -{"sent_id": [12, 3, 0, 26, 1, 4]} -{"sent_id": [2, 1, 5, 12, 6, 14]} -{"sent_id": [3, 1, 4, 2, 13, 0]} -{"sent_id": [1, 3, 2, 7, 5, 6]} -{"sent_id": [1, 3, 2, 5, 12, 4]} -{"sent_id": [5, 1, 4, 6, 0, 3]} -{"sent_id": [3, 1, 2, 4, 0, 5]} -{"sent_id": [1, 0, 8, 2, 4, 3]} -{"sent_id": [3, 1, 2, 14, 0, 15]} -{"sent_id": [1, 2, 9, 3, 8, 4]} -{"sent_id": [4, 12, 6, 14, 7, 3]} -{"sent_id": [3, 1, 12, 17, 24, 0]} -{"sent_id": [1, 3, 10, 2, 5, 4]} -{"sent_id": [3, 9, 2, 10, 14, 6]} -{"sent_id": [4, 2, 1, 9, 5, 0]} -{"sent_id": [1, 2, 3, 5, 4, 8]} -{"sent_id": [0, 1, 2, 15, 3, 7]} -{"sent_id": [8, 5, 6, 11, 10, 12]} -{"sent_id": [1, 2, 0, 4, 5, 15]} -{"sent_id": [1, 2, 3, 9, 7, 0]} -{"sent_id": [1, 2, 4, 0, 5, 6]} -{"sent_id": [3, 5, 2, 1, 4, 9]} -{"sent_id": [1, 5, 9, 15, 13, 10]} -{"sent_id": [1, 5, 2, 4, 0, 6]} -{"sent_id": [1, 2, 12, 6, 0, 4]} -{"sent_id": [0, 2, 1, 3, 4, 6]} -{"sent_id": [3, 7, 1, 4, 5, 2]} -{"sent_id": [3, 1, 0, 5, 4, 10]} -{"sent_id": [2, 12, 0, 3, 1, 4]} -{"sent_id": [3, 1, 2, 5, 11, 0]} -{"sent_id": [0, 3, 1, 2, 9, 8]} -{"sent_id": [2, 1, 13, 4, 5, 6]} -{"sent_id": [1, 3, 2, 8, 7, 15]} -{"sent_id": [1, 4, 0, 13, 2, 6]} -{"sent_id": [1, 2, 3, 4, 12, 15]} -{"sent_id": [1, 5, 4, 2, 10, 0]} -{"sent_id": [3, 1, 14, 0, 2, 8]} -{"sent_id": [0, 11, 12, 16, 10, 14]} -{"sent_id": [7, 2, 15, 6, 1, 5]} -{"sent_id": [1, 2, 0, 13, 6, 7]} -{"sent_id": [1, 3, 5, 4, 2, 0]} -{"sent_id": [2, 4, 0, 1, 8, 6]} -{"sent_id": [2, 1, 3, 12, 8, 6]} -{"sent_id": [2, 0, 11, 5, 4, 15]} -{"sent_id": [1, 5, 8, 7, 6, 0]} -{"sent_id": [2, 3, 10, 1, 4, 5]} -{"sent_id": [1, 8, 2, 0, 4, 3]} -{"sent_id": [1, 9, 3, 2, 7, 0]} -{"sent_id": [4, 1, 3, 0, 2, 6]} -{"sent_id": [7, 2, 3, 1, 10, 4]} -{"sent_id": [5, 1, 2, 3, 17, 11]} -{"sent_id": [6, 5, 1, 0, 2, 15]} -{"sent_id": [0, 2, 12, 1, 11, 14]} -{"sent_id": [0, 2, 4, 8, 6, 15]} -{"sent_id": [1, 2, 0, 8, 3, 14]} -{"sent_id": [3, 4, 7, 2, 5, 12]} -{"sent_id": [0, 1, 5, 6, 3, 2]} -{"sent_id": [1, 13, 2, 15, 0, 8]} -{"sent_id": [3, 1, 8, 5, 2, 6]} -{"sent_id": [1, 0, 6, 10, 16, 3]} -{"sent_id": [5, 7, 6, 9, 3, 10]} -{"sent_id": [3, 13, 9, 1, 6, 7]} -{"sent_id": [4, 3, 11, 12, 5, 9]} -{"sent_id": [1, 2, 16, 12, 3, 5]} -{"sent_id": [1, 9, 0, 2, 8, 6]} -{"sent_id": [12, 21, 7, 14, 17, 5]} -{"sent_id": [1, 9, 11, 15, 8, 10]} -{"sent_id": [5, 7, 6, 1, 11, 4]} -{"sent_id": [2, 0, 3, 4, 5, 6]} -{"sent_id": [1, 0, 5, 2, 9, 6]} -{"sent_id": [2, 0, 13, 3, 9, 8]} -{"sent_id": [2, 12, 4, 5, 3, 11]} -{"sent_id": [1, 2, 0, 9, 5, 10]} -{"sent_id": [0, 4, 15, 1, 2, 11]} -{"sent_id": [1, 0, 2, 16, 11, 3]} -{"sent_id": [1, 3, 2, 8, 10, 13]} -{"sent_id": [11, 3, 1, 2, 5, 6]} -{"sent_id": [5, 7, 0, 6, 3, 2]} -{"sent_id": [1, 2, 4, 3, 11, 16]} -{"sent_id": [1, 0, 6, 2, 5, 3]} -{"sent_id": [1, 5, 7, 2, 4, 8]} -{"sent_id": [2, 13, 0, 4, 5, 3]} -{"sent_id": [1, 0, 6, 2, 7, 13]} -{"sent_id": [3, 2, 4, 10, 6, 0]} -{"sent_id": [0, 4, 3, 1, 2, 7]} -{"sent_id": [3, 4, 1, 11, 2, 5]} -{"sent_id": [3, 0, 4, 1, 2, 13]} -{"sent_id": [18, 0, 1, 13, 10, 6]} -{"sent_id": [3, 4, 0, 16, 1, 2]} -{"sent_id": [2, 1, 7, 4, 20, 12]} -{"sent_id": [1, 3, 2, 4, 5, 7]} -{"sent_id": [1, 2, 9, 3, 0, 6]} -{"sent_id": [2, 3, 0, 4, 5, 1]} -{"sent_id": [18, 1, 0, 9, 12, 5]} -{"sent_id": [5, 2, 8, 1, 4, 9]} -{"sent_id": [5, 2, 3, 13, 0, 7]} -{"sent_id": [4, 1, 3, 5, 10, 6]} -{"sent_id": [2, 5, 10, 1, 4, 7]} -{"sent_id": [0, 3, 2, 4, 5, 1]} -{"sent_id": [1, 2, 0, 3, 5, 6]} -{"sent_id": [1, 2, 12, 11, 18, 10]} -{"sent_id": [3, 1, 2, 4, 0, 6]} -{"sent_id": [4, 2, 5, 7, 3, 1]} -{"sent_id": [3, 1, 5, 2, 4, 0]} -{"sent_id": [6, 17, 7, 8, 14, 15]} -{"sent_id": [1, 2, 10, 6, 9, 0]} -{"sent_id": [1, 0, 4, 2, 3, 5]} -{"sent_id": [1, 0, 4, 9, 6, 5]} -{"sent_id": [3, 2, 1, 0, 4, 6]} -{"sent_id": [5, 8, 17, 10, 12, 4]} -{"sent_id": [3, 2, 11, 1, 0, 12]} -{"sent_id": [3, 10, 2, 0, 1, 8]} -{"sent_id": [3, 1, 2, 0, 4, 5]} -{"sent_id": [4, 13, 2, 18, 7, 0]} -{"sent_id": [1, 2, 3, 5, 0, 7]} -{"sent_id": [6, 19, 20, 18, 2, 11]} -{"sent_id": [8, 4, 5, 3, 1, 2]} -{"sent_id": [1, 3, 2, 11, 4, 0]} -{"sent_id": [1, 3, 2, 9, 10, 11]} -{"sent_id": [1, 2, 4, 3, 0, 12]} -{"sent_id": [1, 0, 8, 2, 7, 3]} -{"sent_id": [4, 2, 1, 9, 6, 7]} -{"sent_id": [3, 2, 1, 4, 6, 5]} -{"sent_id": [0, 1, 2, 8, 4, 12]} -{"sent_id": [3, 5, 16, 1, 4, 2]} -{"sent_id": [3, 1, 0, 16, 8, 2]} -{"sent_id": [1, 2, 8, 3, 4, 7]} -{"sent_id": [1, 2, 3, 4, 5, 7]} -{"sent_id": [1, 3, 5, 2, 9, 4]} -{"sent_id": [1, 2, 4, 0, 5, 12]} -{"sent_id": [11, 3, 0, 2, 4, 5]} -{"sent_id": [2, 1, 0, 5, 7, 6]} -{"sent_id": [1, 2, 11, 9, 5, 0]} -{"sent_id": [1, 3, 7, 8, 2, 0]} -{"sent_id": [1, 2, 0, 4, 6, 3]} -{"sent_id": [3, 4, 0, 2, 8, 5]} -{"sent_id": [1, 0, 2, 5, 7, 6]} -{"sent_id": [4, 1, 5, 3, 8, 2]} -{"sent_id": [1, 2, 3, 4, 7, 5]} -{"sent_id": [1, 2, 19, 8, 18, 0]} -{"sent_id": [1, 0, 12, 3, 8, 11]} -{"sent_id": [1, 16, 9, 5, 4, 10]} -{"sent_id": [0, 4, 1, 2, 9, 16]} -{"sent_id": [0, 1, 3, 4, 10, 17]} -{"sent_id": [3, 1, 2, 6, 7, 14]} -{"sent_id": [0, 1, 2, 4, 3, 5]} -{"sent_id": [1, 15, 2, 3, 0, 4]} -{"sent_id": [2, 0, 10, 1, 6, 9]} -{"sent_id": [3, 0, 8, 1, 2, 14]} -{"sent_id": [0, 2, 1, 4, 5, 12]} -{"sent_id": [3, 5, 1, 2, 4, 0]} -{"sent_id": [1, 2, 7, 8, 0, 9]} -{"sent_id": [3, 1, 2, 4, 5, 7]} -{"sent_id": [8, 3, 2, 11, 4, 18]} -{"sent_id": [3, 1, 4, 2, 5, 6]} -{"sent_id": [8, 3, 0, 13, 2, 10]} -{"sent_id": [1, 2, 4, 3, 12, 0]} -{"sent_id": [3, 0, 1, 9, 2, 4]} -{"sent_id": [0, 4, 9, 10, 15, 1]} -{"sent_id": [2, 3, 0, 14, 4, 1]} -{"sent_id": [3, 0, 5, 4, 6, 1]} -{"sent_id": [0, 2, 1, 11, 12, 5]} -{"sent_id": [1, 3, 2, 14, 4, 6]} -{"sent_id": [1, 7, 2, 5, 0, 8]} -{"sent_id": [1, 11, 2, 4, 6, 5]} -{"sent_id": [3, 5, 1, 2, 4, 11]} -{"sent_id": [3, 10, 1, 7, 4, 2]} -{"sent_id": [0, 7, 3, 2, 10, 4]} -{"sent_id": [1, 5, 2, 12, 11, 0]} -{"sent_id": [2, 9, 5, 4, 6, 1]} -{"sent_id": [1, 5, 2, 4, 6, 0]} -{"sent_id": [0, 1, 3, 2, 6, 12]} -{"sent_id": [4, 3, 0, 5, 1, 2]} -{"sent_id": [1, 6, 3, 2, 4, 7]} -{"sent_id": [3, 0, 6, 1, 12, 4]} -{"sent_id": [1, 6, 4, 7, 5, 2]} -{"sent_id": [2, 1, 13, 3, 11, 4]} -{"sent_id": [3, 1, 11, 0, 12, 6]} -{"sent_id": [3, 6, 8, 1, 0, 2]} -{"sent_id": [2, 4, 5, 6, 0, 10]} -{"sent_id": [4, 3, 1, 2, 5, 6]} -{"sent_id": [2, 1, 3, 9, 4, 11]} -{"sent_id": [3, 1, 13, 6, 14, 0]} -{"sent_id": [0, 1, 4, 3, 2, 17]} -{"sent_id": [1, 2, 12, 4, 0, 3]} -{"sent_id": [2, 3, 7, 0, 4, 1]} -{"sent_id": [2, 6, 1, 0, 5, 8]} -{"sent_id": [5, 10, 6, 1, 7, 2]} -{"sent_id": [3, 1, 0, 2, 13, 14]} -{"sent_id": [1, 2, 6, 0, 3, 13]} -{"sent_id": [0, 2, 1, 12, 11, 3]} -{"sent_id": [0, 4, 5, 2, 1, 6]} -{"sent_id": [10, 4, 1, 2, 7, 11]} -{"sent_id": [2, 4, 8, 0, 12, 1]} -{"sent_id": [1, 0, 2, 5, 10, 6]} -{"sent_id": [2, 0, 1, 9, 4, 5]} -{"sent_id": [2, 1, 3, 7, 5, 6]} -{"sent_id": [1, 4, 2, 3, 5, 9]} -{"sent_id": [2, 14, 0, 1, 15, 10]} -{"sent_id": [11, 5, 0, 2, 7, 8]} -{"sent_id": [0, 6, 3, 5, 2, 9]} -{"sent_id": [4, 1, 2, 5, 8, 14]} -{"sent_id": [1, 2, 6, 5, 11, 4]} -{"sent_id": [2, 3, 11, 5, 4, 0]} -{"sent_id": [3, 4, 8, 6, 5, 10]} -{"sent_id": [3, 7, 6, 2, 4, 1]} -{"sent_id": [3, 2, 1, 0, 8, 9]} -{"sent_id": [0, 1, 10, 3, 2, 12]} -{"sent_id": [3, 0, 4, 1, 10, 11]} -{"sent_id": [3, 1, 2, 4, 8, 13]} -{"sent_id": [3, 5, 4, 1, 2, 15]} -{"sent_id": [2, 1, 6, 0, 10, 5]} -{"sent_id": [1, 2, 3, 4, 0, 18]} -{"sent_id": [1, 7, 3, 4, 2, 6]} -{"sent_id": [7, 0, 16, 2, 18, 17]} -{"sent_id": [12, 3, 1, 10, 11, 5]} -{"sent_id": [0, 8, 2, 1, 5, 6]} -{"sent_id": [3, 1, 8, 9, 4, 2]} -{"sent_id": [11, 1, 3, 4, 6, 2]} -{"sent_id": [1, 11, 3, 6, 0, 8]} -{"sent_id": [5, 4, 12, 1, 3, 7]} -{"sent_id": [5, 4, 2, 6, 3, 0]} -{"sent_id": [12, 13, 1, 0, 7, 10]} -{"sent_id": [1, 0, 2, 3, 7, 10]} -{"sent_id": [0, 2, 1, 4, 5, 6]} -{"sent_id": [1, 2, 7, 3, 5, 0]} -{"sent_id": [2, 4, 8, 13, 9, 7]} -{"sent_id": [3, 6, 1, 5, 2, 8]} -{"sent_id": [3, 4, 1, 2, 7, 8]} -{"sent_id": [3, 1, 10, 16, 2, 7]} -{"sent_id": [1, 2, 4, 5, 7, 0]} -{"sent_id": [2, 4, 5, 8, 6, 7]} -{"sent_id": [4, 3, 2, 1, 5, 0]} -{"sent_id": [1, 4, 5, 13, 6, 12]} -{"sent_id": [3, 10, 2, 1, 0, 6]} -{"sent_id": [1, 2, 7, 15, 6, 4]} -{"sent_id": [2, 6, 5, 1, 4, 7]} -{"sent_id": [5, 2, 4, 6, 8, 7]} -{"sent_id": [2, 1, 8, 10, 4, 3]} -{"sent_id": [1, 11, 2, 4, 6, 10]} -{"sent_id": [3, 2, 1, 5, 0, 11]} -{"sent_id": [2, 4, 17, 8, 5, 3]} -{"sent_id": [3, 1, 20, 6, 0, 4]} -{"sent_id": [3, 1, 10, 16, 8, 9]} -{"sent_id": [4, 19, 5, 8, 14, 2]} -{"sent_id": [1, 2, 3, 4, 17, 12]} -{"sent_id": [1, 4, 3, 13, 2, 9]} -{"sent_id": [1, 2, 13, 5, 3, 15]} -{"sent_id": [9, 8, 12, 10, 3, 4]} -{"sent_id": [3, 4, 0, 1, 7, 8]} -{"sent_id": [12, 1, 7, 3, 8, 11]} -{"sent_id": [3, 2, 10, 4, 5, 9]} -{"sent_id": [1, 10, 2, 0, 5, 13]} -{"sent_id": [6, 14, 12, 7, 2, 9]} -{"sent_id": [3, 0, 4, 1, 2, 14]} -{"sent_id": [2, 3, 4, 1, 7, 10]} -{"sent_id": [3, 10, 6, 7, 17, 9]} -{"sent_id": [3, 9, 12, 4, 7, 0]} -{"sent_id": [5, 4, 2, 0, 7, 8]} -{"sent_id": [1, 9, 3, 5, 4, 7]} -{"sent_id": [0, 3, 4, 2, 5, 10]} -{"sent_id": [1, 2, 3, 13, 17, 4]} -{"sent_id": [4, 5, 15, 0, 1, 14]} -{"sent_id": [3, 2, 8, 4, 0, 1]} -{"sent_id": [8, 3, 2, 6, 5, 0]} -{"sent_id": [5, 4, 2, 7, 3, 0]} -{"sent_id": [0, 10, 1, 2, 11, 9]} -{"sent_id": [3, 1, 13, 10, 17, 0]} -{"sent_id": [2, 0, 3, 1, 6, 4]} -{"sent_id": [1, 9, 2, 5, 7, 4]} -{"sent_id": [6, 0, 2, 1, 14, 13]} -{"sent_id": [3, 0, 2, 13, 14, 15]} -{"sent_id": [1, 3, 2, 10, 0, 4]} -{"sent_id": [10, 2, 0, 3, 1, 5]} -{"sent_id": [3, 1, 6, 0, 2, 4]} -{"sent_id": [0, 1, 10, 14, 12, 8]} -{"sent_id": [5, 1, 3, 0, 4, 2]} -{"sent_id": [2, 10, 6, 3, 11, 1]} -{"sent_id": [3, 14, 1, 2, 12, 4]} -{"sent_id": [12, 3, 2, 7, 1, 9]} -{"sent_id": [3, 13, 0, 2, 11, 6]} -{"sent_id": [4, 0, 1, 3, 10, 9]} -{"sent_id": [3, 4, 9, 10, 1, 17]} -{"sent_id": [1, 13, 5, 3, 2, 12]} -{"sent_id": [2, 3, 4, 5, 7, 0]} -{"sent_id": [1, 2, 4, 5, 3, 0]} -{"sent_id": [1, 2, 6, 4, 8, 7]} -{"sent_id": [1, 2, 5, 10, 4, 6]} -{"sent_id": [10, 11, 12, 9, 5, 14]} -{"sent_id": [2, 0, 3, 1, 6, 9]} -{"sent_id": [2, 1, 5, 4, 3, 6]} -{"sent_id": [9, 3, 1, 5, 12, 6]} -{"sent_id": [2, 9, 1, 4, 0, 7]} -{"sent_id": [3, 2, 1, 11, 5, 6]} -{"sent_id": [13, 5, 0, 2, 12, 1]} -{"sent_id": [2, 0, 3, 8, 16, 4]} -{"sent_id": [0, 4, 1, 2, 12, 11]} -{"sent_id": [7, 3, 5, 9, 10, 2]} -{"sent_id": [1, 2, 3, 4, 6, 16]} -{"sent_id": [1, 2, 0, 8, 9, 12]} -{"sent_id": [4, 6, 5, 3, 2, 15]} -{"sent_id": [5, 7, 16, 6, 1, 3]} -{"sent_id": [2, 1, 7, 5, 3, 4]} -{"sent_id": [0, 5, 2, 1, 6, 12]} -{"sent_id": [3, 6, 2, 7, 11, 5]} -{"sent_id": [1, 0, 3, 4, 2, 6]} -{"sent_id": [3, 10, 5, 2, 9, 8]} -{"sent_id": [0, 1, 13, 3, 2, 8]} -{"sent_id": [5, 1, 12, 9, 15, 6]} -{"sent_id": [4, 14, 2, 8, 5, 1]} -{"sent_id": [1, 5, 3, 0, 7, 6]} -{"sent_id": [1, 3, 9, 10, 12, 2]} -{"sent_id": [3, 6, 14, 7, 5, 0]} -{"sent_id": [1, 2, 3, 9, 8, 0]} -{"sent_id": [4, 0, 2, 3, 10, 1]} -{"sent_id": [4, 2, 15, 0, 7, 9]} -{"sent_id": [0, 1, 2, 4, 5, 20]} -{"sent_id": [3, 6, 4, 12, 1, 15]} -{"sent_id": [4, 15, 1, 3, 0, 2]} -{"sent_id": [3, 21, 5, 4, 7, 19]} -{"sent_id": [5, 3, 2, 1, 0, 4]} -{"sent_id": [2, 1, 0, 11, 10, 5]} -{"sent_id": [3, 4, 1, 0, 17, 2]} -{"sent_id": [7, 6, 3, 10, 9, 2]} -{"sent_id": [4, 2, 5, 1, 0, 7]} -{"sent_id": [1, 3, 7, 2, 9, 4]} -{"sent_id": [4, 1, 5, 6, 2, 0]} -{"sent_id": [3, 8, 0, 1, 5, 6]} -{"sent_id": [3, 16, 2, 5, 14, 6]} -{"sent_id": [1, 2, 0, 5, 16, 7]} -{"sent_id": [2, 0, 4, 1, 9, 5]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [7, 0, 14, 13, 2, 9]} -{"sent_id": [1, 2, 5, 6, 14, 0]} -{"sent_id": [3, 4, 6, 2, 15, 5]} -{"sent_id": [7, 0, 9, 19, 2, 14]} -{"sent_id": [2, 4, 6, 5, 1, 0]} -{"sent_id": [3, 4, 0, 1, 8, 9]} -{"sent_id": [2, 3, 0, 7, 4, 5]} -{"sent_id": [2, 12, 3, 14, 18, 4]} -{"sent_id": [9, 0, 1, 5, 2, 4]} -{"sent_id": [4, 2, 9, 7, 0, 1]} -{"sent_id": [0, 7, 5, 6, 3, 2]} -{"sent_id": [0, 1, 3, 2, 6, 7]} -{"sent_id": [0, 3, 4, 7, 2, 8]} -{"sent_id": [3, 1, 4, 9, 16, 14]} -{"sent_id": [0, 4, 12, 1, 3, 6]} -{"sent_id": [3, 4, 5, 6, 13, 10]} -{"sent_id": [3, 0, 1, 4, 2, 15]} -{"sent_id": [0, 3, 4, 2, 5, 8]} -{"sent_id": [1, 4, 0, 8, 3, 2]} -{"sent_id": [0, 1, 6, 7, 3, 11]} -{"sent_id": [2, 7, 8, 3, 4, 0]} -{"sent_id": [0, 2, 5, 1, 9, 8]} -{"sent_id": [4, 13, 6, 5, 0, 2]} -{"sent_id": [14, 3, 0, 16, 2, 4]} -{"sent_id": [5, 1, 2, 3, 15, 6]} -{"sent_id": [4, 0, 5, 8, 9, 3]} -{"sent_id": [3, 1, 2, 4, 14, 0]} -{"sent_id": [3, 1, 18, 2, 19, 10]} -{"sent_id": [3, 4, 14, 2, 1, 11]} -{"sent_id": [1, 2, 0, 4, 5, 8]} -{"sent_id": [1, 6, 2, 0, 10, 7]} -{"sent_id": [2, 3, 0, 5, 4, 1]} -{"sent_id": [1, 2, 0, 14, 8, 7]} -{"sent_id": [12, 4, 3, 0, 2, 5]} -{"sent_id": [3, 0, 1, 2, 4, 8]} -{"sent_id": [0, 4, 6, 3, 1, 2]} -{"sent_id": [3, 2, 4, 5, 7, 6]} -{"sent_id": [3, 2, 1, 12, 10, 8]} -{"sent_id": [3, 6, 2, 7, 1, 17]} -{"sent_id": [3, 1, 4, 2, 0, 7]} -{"sent_id": [0, 3, 2, 10, 11, 9]} -{"sent_id": [1, 2, 3, 7, 0, 6]} -{"sent_id": [3, 1, 2, 4, 5, 0]} -{"sent_id": [1, 4, 2, 5, 0, 6]} -{"sent_id": [3, 2, 4, 5, 6, 1]} -{"sent_id": [7, 2, 8, 4, 5, 6]} -{"sent_id": [1, 3, 2, 4, 0, 14]} -{"sent_id": [0, 12, 16, 9, 10, 20]} -{"sent_id": [0, 5, 6, 3, 11, 13]} -{"sent_id": [1, 6, 0, 7, 8, 4]} -{"sent_id": [3, 4, 16, 5, 13, 1]} -{"sent_id": [3, 1, 2, 0, 9, 4]} -{"sent_id": [3, 4, 12, 2, 5, 11]} -{"sent_id": [1, 2, 3, 8, 9, 6]} -{"sent_id": [4, 2, 5, 1, 3, 0]} -{"sent_id": [2, 5, 1, 4, 6, 0]} -{"sent_id": [1, 2, 15, 8, 0, 10]} -{"sent_id": [3, 5, 8, 18, 1, 2]} -{"sent_id": [8, 10, 9, 6, 12, 3]} -{"sent_id": [1, 2, 5, 11, 6, 3]} -{"sent_id": [4, 1, 0, 2, 11, 3]} -{"sent_id": [0, 13, 4, 3, 10, 8]} -{"sent_id": [4, 3, 5, 6, 10, 9]} -{"sent_id": [1, 2, 6, 7, 4, 5]} -{"sent_id": [1, 2, 5, 0, 3, 15]} -{"sent_id": [0, 5, 3, 4, 2, 16]} -{"sent_id": [2, 4, 3, 5, 6, 8]} -{"sent_id": [2, 1, 3, 0, 5, 4]} -{"sent_id": [0, 3, 9, 7, 2, 4]} -{"sent_id": [1, 4, 7, 5, 2, 3]} -{"sent_id": [1, 6, 0, 7, 2, 3]} -{"sent_id": [2, 3, 10, 0, 5, 1]} -{"sent_id": [10, 4, 5, 2, 8, 9]} -{"sent_id": [3, 1, 0, 4, 2, 5]} -{"sent_id": [1, 6, 5, 2, 4, 7]} -{"sent_id": [1, 0, 3, 2, 12, 9]} -{"sent_id": [1, 2, 3, 4, 11, 8]} -{"sent_id": [1, 9, 0, 10, 13, 14]} -{"sent_id": [1, 5, 16, 6, 0, 8]} -{"sent_id": [0, 2, 1, 10, 16, 4]} -{"sent_id": [1, 0, 3, 12, 16, 11]} -{"sent_id": [2, 0, 3, 4, 5, 7]} -{"sent_id": [0, 2, 3, 1, 15, 4]} -{"sent_id": [6, 1, 2, 0, 5, 3]} -{"sent_id": [0, 3, 1, 14, 9, 2]} -{"sent_id": [0, 2, 1, 9, 3, 4]} -{"sent_id": [1, 2, 4, 6, 5, 9]} -{"sent_id": [2, 1, 3, 4, 6, 7]} -{"sent_id": [3, 0, 2, 13, 1, 14]} -{"sent_id": [1, 4, 9, 3, 0, 2]} -{"sent_id": [3, 0, 2, 4, 6, 5]} -{"sent_id": [2, 3, 8, 0, 10, 6]} -{"sent_id": [1, 12, 3, 0, 2, 5]} -{"sent_id": [2, 4, 5, 10, 9, 1]} -{"sent_id": [0, 1, 4, 2, 3, 5]} -{"sent_id": [2, 4, 3, 11, 1, 5]} -{"sent_id": [1, 2, 3, 10, 6, 0]} -{"sent_id": [2, 3, 1, 6, 0, 5]} -{"sent_id": [1, 4, 3, 2, 10, 11]} -{"sent_id": [1, 4, 2, 5, 3, 8]} -{"sent_id": [3, 4, 1, 2, 5, 0]} -{"sent_id": [1, 3, 16, 4, 0, 2]} -{"sent_id": [1, 8, 2, 3, 4, 5]} -{"sent_id": [0, 14, 1, 8, 2, 15]} -{"sent_id": [4, 1, 0, 2, 14, 5]} -{"sent_id": [2, 0, 3, 6, 1, 17]} -{"sent_id": [1, 0, 5, 10, 2, 7]} -{"sent_id": [0, 1, 2, 5, 7, 8]} -{"sent_id": [1, 0, 7, 5, 6, 3]} -{"sent_id": [1, 2, 11, 7, 5, 6]} -{"sent_id": [1, 3, 0, 5, 4, 2]} -{"sent_id": [3, 11, 1, 2, 10, 16]} -{"sent_id": [5, 2, 1, 4, 0, 3]} -{"sent_id": [1, 2, 0, 4, 10, 3]} -{"sent_id": [1, 2, 12, 13, 0, 4]} -{"sent_id": [0, 2, 1, 11, 3, 14]} -{"sent_id": [2, 1, 0, 4, 7, 10]} -{"sent_id": [1, 5, 2, 4, 8, 6]} -{"sent_id": [3, 1, 2, 5, 6, 4]} -{"sent_id": [2, 3, 0, 4, 1, 7]} -{"sent_id": [3, 2, 9, 1, 0, 4]} -{"sent_id": [3, 4, 7, 5, 6, 9]} -{"sent_id": [0, 2, 1, 3, 13, 7]} -{"sent_id": [2, 0, 3, 7, 1, 6]} -{"sent_id": [1, 5, 2, 3, 15, 4]} -{"sent_id": [4, 1, 5, 7, 2, 3]} -{"sent_id": [4, 1, 5, 0, 2, 3]} -{"sent_id": [4, 5, 7, 12, 10, 8]} -{"sent_id": [0, 2, 3, 15, 4, 20]} -{"sent_id": [3, 4, 2, 0, 1, 13]} -{"sent_id": [1, 4, 2, 8, 9, 5]} -{"sent_id": [5, 1, 7, 0, 2, 20]} -{"sent_id": [1, 2, 7, 3, 4, 6]} -{"sent_id": [3, 6, 1, 7, 9, 10]} -{"sent_id": [1, 0, 3, 9, 2, 14]} -{"sent_id": [1, 2, 9, 10, 3, 0]} -{"sent_id": [3, 8, 2, 4, 11, 9]} -{"sent_id": [1, 2, 11, 3, 0, 12]} -{"sent_id": [1, 2, 4, 3, 0, 6]} -{"sent_id": [1, 3, 2, 4, 7, 0]} -{"sent_id": [10, 2, 0, 8, 1, 12]} -{"sent_id": [4, 10, 3, 6, 5, 8]} -{"sent_id": [3, 12, 2, 1, 0, 8]} -{"sent_id": [9, 4, 3, 7, 2, 14]} -{"sent_id": [6, 5, 2, 1, 13, 15]} -{"sent_id": [10, 4, 16, 1, 0, 3]} -{"sent_id": [4, 5, 8, 3, 2, 6]} -{"sent_id": [2, 6, 4, 1, 0, 15]} -{"sent_id": [0, 2, 4, 13, 16, 1]} -{"sent_id": [3, 4, 0, 6, 7, 8]} -{"sent_id": [4, 2, 5, 3, 1, 6]} -{"sent_id": [1, 0, 2, 3, 8, 9]} -{"sent_id": [0, 3, 1, 9, 2, 4]} -{"sent_id": [0, 3, 2, 1, 7, 4]} -{"sent_id": [3, 4, 8, 5, 6, 16]} -{"sent_id": [3, 2, 0, 8, 5, 6]} -{"sent_id": [1, 3, 2, 5, 13, 14]} -{"sent_id": [0, 1, 3, 2, 8, 13]} -{"sent_id": [0, 7, 1, 6, 3, 2]} -{"sent_id": [0, 3, 1, 2, 4, 16]} -{"sent_id": [4, 3, 5, 8, 1, 7]} -{"sent_id": [5, 8, 1, 6, 0, 2]} -{"sent_id": [1, 0, 2, 3, 4, 5]} -{"sent_id": [1, 2, 8, 6, 3, 0]} -{"sent_id": [1, 2, 5, 4, 13, 0]} -{"sent_id": [0, 2, 4, 5, 1, 12]} -{"sent_id": [1, 4, 7, 10, 13, 9]} -{"sent_id": [4, 0, 2, 12, 9, 14]} -{"sent_id": [8, 1, 0, 2, 11, 15]} -{"sent_id": [0, 1, 3, 12, 6, 2]} -{"sent_id": [0, 9, 1, 12, 2, 4]} -{"sent_id": [2, 0, 8, 3, 1, 13]} -{"sent_id": [3, 2, 1, 0, 5, 15]} -{"sent_id": [1, 3, 10, 4, 2, 6]} -{"sent_id": [5, 1, 2, 0, 11, 3]} -{"sent_id": [5, 4, 7, 2, 6, 1]} -{"sent_id": [5, 0, 7, 2, 4, 3]} -{"sent_id": [10, 22, 6, 11, 9, 20]} -{"sent_id": [1, 3, 4, 5, 2, 12]} -{"sent_id": [0, 2, 9, 1, 18, 10]} -{"sent_id": [1, 2, 5, 3, 4, 6]} -{"sent_id": [1, 3, 5, 2, 0, 4]} -{"sent_id": [3, 1, 2, 5, 15, 6]} -{"sent_id": [0, 2, 3, 4, 13, 5]} -{"sent_id": [1, 2, 4, 5, 0, 8]} -{"sent_id": [0, 3, 11, 1, 2, 4]} -{"sent_id": [2, 4, 5, 1, 3, 6]} -{"sent_id": [4, 2, 3, 5, 1, 13]} -{"sent_id": [2, 0, 1, 8, 14, 5]} -{"sent_id": [3, 1, 11, 2, 6, 4]} -{"sent_id": [1, 2, 0, 3, 4, 11]} -{"sent_id": [3, 1, 6, 4, 2, 11]} -{"sent_id": [2, 3, 14, 4, 5, 7]} -{"sent_id": [3, 1, 4, 12, 5, 2]} -{"sent_id": [0, 2, 1, 4, 10, 8]} -{"sent_id": [6, 3, 4, 5, 7, 1]} -{"sent_id": [3, 4, 8, 1, 17, 0]} -{"sent_id": [2, 1, 6, 0, 5, 4]} -{"sent_id": [2, 3, 4, 12, 5, 0]} -{"sent_id": [12, 10, 14, 7, 8, 9]} -{"sent_id": [2, 11, 0, 12, 3, 4]} -{"sent_id": [3, 0, 1, 12, 6, 8]} -{"sent_id": [3, 4, 2, 1, 10, 6]} -{"sent_id": [8, 0, 10, 1, 9, 6]} -{"sent_id": [3, 4, 11, 2, 1, 14]} -{"sent_id": [9, 1, 3, 0, 2, 7]} -{"sent_id": [3, 14, 1, 11, 2, 8]} -{"sent_id": [4, 2, 11, 1, 9, 0]} -{"sent_id": [5, 1, 4, 2, 6, 12]} -{"sent_id": [1, 5, 7, 11, 20, 2]} -{"sent_id": [2, 1, 6, 8, 5, 7]} -{"sent_id": [3, 1, 2, 10, 6, 0]} -{"sent_id": [1, 2, 3, 13, 5, 0]} -{"sent_id": [0, 11, 7, 6, 1, 8]} -{"sent_id": [1, 3, 2, 5, 14, 4]} -{"sent_id": [0, 3, 4, 1, 2, 12]} -{"sent_id": [9, 4, 0, 14, 6, 3]} -{"sent_id": [2, 1, 7, 6, 3, 5]} -{"sent_id": [7, 1, 2, 3, 5, 4]} -{"sent_id": [3, 2, 1, 19, 18, 12]} -{"sent_id": [0, 3, 13, 4, 14, 2]} -{"sent_id": [1, 4, 5, 2, 3, 0]} -{"sent_id": [5, 6, 4, 16, 0, 17]} -{"sent_id": [0, 3, 2, 15, 4, 1]} -{"sent_id": [1, 3, 2, 7, 6, 9]} -{"sent_id": [1, 6, 3, 2, 0, 4]} -{"sent_id": [1, 11, 12, 4, 2, 3]} -{"sent_id": [1, 2, 3, 0, 8, 5]} -{"sent_id": [3, 6, 1, 12, 4, 10]} -{"sent_id": [2, 1, 3, 11, 9, 4]} -{"sent_id": [1, 3, 2, 8, 11, 12]} -{"sent_id": [1, 3, 5, 2, 7, 4]} -{"sent_id": [3, 4, 1, 2, 14, 11]} -{"sent_id": [0, 5, 2, 6, 1, 13]} -{"sent_id": [3, 6, 1, 0, 2, 15]} -{"sent_id": [0, 19, 1, 3, 18, 4]} -{"sent_id": [1, 2, 5, 4, 0, 6]} -{"sent_id": [2, 1, 8, 4, 5, 0]} -{"sent_id": [2, 1, 3, 0, 10, 5]} -{"sent_id": [1, 11, 2, 3, 6, 0]} -{"sent_id": [2, 3, 5, 1, 0, 8]} -{"sent_id": [1, 2, 4, 5, 8, 0]} -{"sent_id": [2, 3, 4, 8, 7, 1]} -{"sent_id": [1, 2, 4, 3, 6, 8]} -{"sent_id": [3, 5, 0, 4, 12, 2]} -{"sent_id": [3, 15, 1, 0, 10, 5]} -{"sent_id": [3, 4, 2, 1, 7, 6]} -{"sent_id": [1, 2, 13, 0, 14, 12]} -{"sent_id": [2, 3, 1, 7, 9, 0]} -{"sent_id": [2, 1, 4, 12, 7, 3]} -{"sent_id": [9, 3, 1, 10, 2, 0]} -{"sent_id": [1, 0, 2, 4, 3, 10]} -{"sent_id": [0, 2, 3, 1, 4, 9]} -{"sent_id": [2, 3, 1, 0, 4, 10]} -{"sent_id": [2, 6, 3, 8, 7, 9]} -{"sent_id": [3, 2, 1, 20, 6, 17]} -{"sent_id": [0, 7, 1, 10, 11, 6]} -{"sent_id": [0, 1, 3, 2, 8, 5]} -{"sent_id": [4, 6, 5, 7, 3, 8]} -{"sent_id": [1, 3, 2, 6, 0, 18]} -{"sent_id": [2, 0, 1, 3, 11, 4]} -{"sent_id": [3, 5, 0, 10, 4, 2]} -{"sent_id": [3, 1, 4, 2, 7, 8]} -{"sent_id": [1, 2, 0, 6, 12, 7]} -{"sent_id": [3, 1, 15, 0, 4, 9]} -{"sent_id": [1, 3, 6, 4, 11, 0]} -{"sent_id": [3, 9, 0, 1, 4, 7]} -{"sent_id": [5, 15, 6, 0, 2, 3]} -{"sent_id": [3, 1, 4, 6, 5, 17]} -{"sent_id": [1, 4, 2, 5, 0, 10]} -{"sent_id": [0, 1, 2, 13, 5, 3]} -{"sent_id": [5, 4, 6, 7, 9, 12]} -{"sent_id": [2, 0, 1, 13, 7, 6]} -{"sent_id": [0, 1, 11, 4, 6, 2]} -{"sent_id": [15, 2, 6, 3, 0, 16]} -{"sent_id": [3, 0, 2, 1, 5, 4]} -{"sent_id": [3, 1, 0, 6, 8, 2]} -{"sent_id": [0, 1, 4, 10, 3, 8]} -{"sent_id": [0, 1, 3, 14, 4, 2]} -{"sent_id": [2, 0, 1, 3, 5, 8]} -{"sent_id": [2, 1, 5, 10, 0, 3]} -{"sent_id": [1, 0, 6, 2, 5, 4]} -{"sent_id": [1, 3, 2, 4, 9, 5]} -{"sent_id": [3, 1, 2, 5, 9, 0]} -{"sent_id": [0, 1, 3, 2, 14, 5]} -{"sent_id": [1, 6, 2, 3, 4, 0]} -{"sent_id": [2, 4, 7, 1, 9, 0]} -{"sent_id": [4, 3, 5, 6, 7, 0]} -{"sent_id": [4, 5, 11, 6, 12, 8]} -{"sent_id": [1, 2, 0, 5, 14, 9]} -{"sent_id": [6, 3, 7, 5, 8, 4]} -{"sent_id": [1, 3, 2, 4, 5, 6]} -{"sent_id": [3, 9, 6, 4, 2, 1]} -{"sent_id": [3, 0, 4, 1, 14, 7]} -{"sent_id": [2, 1, 5, 8, 6, 7]} -{"sent_id": [3, 2, 10, 5, 6, 13]} -{"sent_id": [1, 0, 2, 3, 9, 13]} -{"sent_id": [3, 1, 2, 4, 0, 8]} -{"sent_id": [3, 8, 0, 1, 7, 2]} -{"sent_id": [1, 2, 3, 4, 0, 5]} -{"sent_id": [4, 5, 3, 7, 9, 6]} -{"sent_id": [2, 4, 3, 0, 7, 5]} -{"sent_id": [1, 2, 3, 9, 8, 7]} -{"sent_id": [1, 3, 2, 0, 7, 4]} -{"sent_id": [3, 10, 2, 4, 5, 1]} -{"sent_id": [1, 10, 3, 4, 2, 0]} -{"sent_id": [1, 0, 2, 15, 5, 3]} -{"sent_id": [3, 1, 2, 8, 9, 6]} -{"sent_id": [5, 3, 6, 1, 2, 10]} -{"sent_id": [1, 3, 11, 2, 4, 8]} -{"sent_id": [1, 5, 2, 15, 3, 8]} -{"sent_id": [3, 4, 1, 17, 18, 10]} -{"sent_id": [2, 0, 1, 20, 9, 17]} -{"sent_id": [8, 4, 2, 1, 5, 12]} -{"sent_id": [9, 4, 6, 2, 7, 10]} -{"sent_id": [3, 0, 4, 1, 8, 12]} -{"sent_id": [3, 1, 0, 2, 9, 5]} -{"sent_id": [1, 3, 4, 7, 2, 5]} -{"sent_id": [2, 6, 0, 14, 12, 10]} -{"sent_id": [3, 1, 8, 4, 6, 5]} -{"sent_id": [4, 14, 2, 16, 10, 15]} -{"sent_id": [10, 5, 4, 1, 0, 2]} -{"sent_id": [3, 4, 2, 12, 10, 1]} -{"sent_id": [3, 1, 8, 2, 15, 7]} -{"sent_id": [2, 4, 6, 1, 10, 3]} -{"sent_id": [1, 2, 0, 6, 4, 10]} -{"sent_id": [3, 0, 1, 2, 6, 5]} -{"sent_id": [1, 4, 10, 6, 3, 16]} -{"sent_id": [0, 8, 2, 3, 5, 10]} -{"sent_id": [3, 1, 2, 15, 4, 5]} -{"sent_id": [3, 2, 0, 1, 7, 12]} -{"sent_id": [1, 2, 3, 5, 4, 6]} -{"sent_id": [1, 4, 6, 0, 10, 3]} -{"sent_id": [2, 1, 4, 6, 13, 5]} -{"sent_id": [2, 0, 3, 5, 6, 1]} -{"sent_id": [3, 1, 7, 2, 8, 0]} -{"sent_id": [6, 3, 10, 0, 1, 7]} -{"sent_id": [0, 1, 2, 8, 11, 5]} -{"sent_id": [0, 1, 17, 3, 6, 9]} -{"sent_id": [1, 2, 13, 3, 4, 5]} -{"sent_id": [3, 4, 13, 5, 19, 17]} -{"sent_id": [1, 3, 0, 2, 6, 12]} -{"sent_id": [1, 2, 8, 4, 5, 3]} -{"sent_id": [1, 2, 7, 8, 3, 5]} -{"sent_id": [8, 1, 0, 9, 4, 2]} -{"sent_id": [1, 0, 2, 4, 8, 7]} -{"sent_id": [2, 3, 1, 4, 9, 15]} -{"sent_id": [0, 8, 14, 9, 6, 11]} -{"sent_id": [2, 0, 11, 7, 1, 3]} -{"sent_id": [1, 2, 8, 7, 9, 0]} -{"sent_id": [5, 2, 0, 3, 9, 14]} -{"sent_id": [1, 2, 4, 10, 5, 13]} -{"sent_id": [1, 0, 3, 4, 2, 6]} -{"sent_id": [3, 9, 0, 14, 1, 2]} -{"sent_id": [13, 1, 5, 8, 2, 11]} -{"sent_id": [7, 1, 6, 3, 0, 11]} -{"sent_id": [2, 1, 0, 3, 6, 7]} -{"sent_id": [1, 0, 3, 6, 2, 5]} -{"sent_id": [1, 2, 3, 4, 0, 5]} -{"sent_id": [1, 2, 6, 4, 12, 7]} -{"sent_id": [3, 7, 4, 1, 2, 13]} -{"sent_id": [1, 5, 3, 7, 6, 2]} -{"sent_id": [3, 4, 2, 0, 13, 17]} -{"sent_id": [3, 1, 2, 9, 16, 5]} -{"sent_id": [3, 2, 0, 4, 1, 10]} -{"sent_id": [2, 0, 1, 5, 9, 10]} -{"sent_id": [1, 2, 0, 4, 5, 12]} -{"sent_id": [5, 3, 7, 4, 6, 15]} -{"sent_id": [1, 4, 8, 5, 2, 7]} -{"sent_id": [1, 2, 5, 3, 0, 8]} -{"sent_id": [0, 3, 2, 4, 11, 1]} -{"sent_id": [3, 1, 0, 2, 16, 5]} -{"sent_id": [1, 2, 3, 4, 5, 6]} -{"sent_id": [1, 2, 3, 4, 16, 0]} -{"sent_id": [19, 10, 4, 5, 2, 1]} -{"sent_id": [5, 6, 10, 3, 9, 2]} -{"sent_id": [1, 5, 0, 10, 17, 2]} -{"sent_id": [5, 2, 1, 6, 8, 3]} -{"sent_id": [19, 0, 4, 1, 10, 2]} -{"sent_id": [3, 6, 1, 2, 5, 4]} -{"sent_id": [3, 9, 1, 0, 8, 7]} -{"sent_id": [3, 1, 0, 2, 8, 17]} -{"sent_id": [2, 1, 5, 4, 6, 0]} -{"sent_id": [4, 0, 5, 1, 2, 3]} -{"sent_id": [2, 1, 6, 3, 4, 8]} -{"sent_id": [2, 1, 7, 0, 5, 4]} -{"sent_id": [1, 2, 0, 4, 6, 17]} -{"sent_id": [6, 1, 3, 5, 2, 18]} -{"sent_id": [1, 2, 4, 5, 9, 6]} -{"sent_id": [2, 1, 3, 7, 6, 5]} -{"sent_id": [2, 4, 3, 0, 12, 14]} -{"sent_id": [1, 2, 5, 4, 3, 12]} -{"sent_id": [1, 9, 3, 4, 2, 17]} -{"sent_id": [0, 5, 3, 1, 11, 18]} -{"sent_id": [1, 2, 0, 3, 10, 12]} -{"sent_id": [0, 1, 2, 11, 6, 3]} -{"sent_id": [0, 5, 7, 6, 3, 4]} -{"sent_id": [3, 4, 8, 0, 7, 2]} -{"sent_id": [0, 13, 1, 4, 8, 9]} -{"sent_id": [3, 2, 0, 4, 9, 5]} -{"sent_id": [2, 1, 3, 0, 6, 4]} -{"sent_id": [0, 2, 1, 3, 7, 9]} -{"sent_id": [1, 2, 3, 4, 11, 0]} -{"sent_id": [0, 10, 1, 2, 8, 4]} -{"sent_id": [3, 4, 13, 11, 7, 5]} -{"sent_id": [3, 2, 10, 6, 12, 1]} -{"sent_id": [2, 3, 12, 7, 6, 5]} -{"sent_id": [1, 5, 0, 8, 6, 7]} -{"sent_id": [1, 4, 2, 3, 5, 10]} -{"sent_id": [3, 6, 4, 0, 2, 5]} -{"sent_id": [5, 1, 2, 0, 3, 6]} -{"sent_id": [1, 0, 3, 4, 2, 5]} -{"sent_id": [3, 2, 5, 0, 4, 12]} -{"sent_id": [4, 2, 3, 10, 5, 1]} -{"sent_id": [11, 2, 5, 12, 7, 1]} -{"sent_id": [1, 3, 4, 15, 8, 0]} -{"sent_id": [2, 4, 3, 5, 12, 6]} -{"sent_id": [4, 5, 1, 9, 0, 3]} -{"sent_id": [2, 3, 8, 10, 0, 1]} -{"sent_id": [5, 2, 3, 1, 0, 4]} -{"sent_id": [4, 3, 1, 0, 2, 14]} -{"sent_id": [2, 1, 12, 3, 15, 0]} -{"sent_id": [0, 5, 4, 3, 2, 1]} -{"sent_id": [10, 0, 3, 14, 1, 5]} -{"sent_id": [0, 5, 6, 4, 11, 13]} -{"sent_id": [4, 3, 0, 5, 2, 1]} -{"sent_id": [1, 2, 3, 6, 14, 0]} -{"sent_id": [1, 4, 7, 0, 3, 2]} -{"sent_id": [0, 5, 2, 1, 16, 12]} -{"sent_id": [2, 3, 4, 8, 6, 12]} -{"sent_id": [3, 9, 8, 2, 10, 7]} -{"sent_id": [4, 1, 2, 15, 3, 0]} -{"sent_id": [3, 2, 0, 9, 4, 1]} -{"sent_id": [1, 3, 2, 13, 4, 18]} -{"sent_id": [1, 7, 4, 2, 8, 5]} -{"sent_id": [0, 3, 2, 12, 6, 5]} -{"sent_id": [3, 0, 4, 5, 9, 11]} -{"sent_id": [0, 8, 12, 15, 4, 10]} -{"sent_id": [1, 2, 3, 0, 8, 17]} -{"sent_id": [6, 11, 8, 3, 5, 1]} -{"sent_id": [1, 4, 12, 3, 0, 8]} -{"sent_id": [4, 8, 3, 5, 2, 10]} -{"sent_id": [0, 7, 2, 3, 12, 6]} -{"sent_id": [1, 3, 4, 2, 14, 0]} -{"sent_id": [1, 0, 3, 4, 2, 10]} -{"sent_id": [1, 2, 4, 5, 6, 0]} -{"sent_id": [1, 3, 8, 2, 4, 7]} -{"sent_id": [3, 16, 5, 1, 0, 4]} -{"sent_id": [1, 5, 3, 0, 2, 13]} -{"sent_id": [1, 3, 2, 19, 9, 5]} -{"sent_id": [3, 4, 6, 5, 2, 11]} -{"sent_id": [4, 2, 3, 1, 6, 0]} -{"sent_id": [3, 4, 11, 9, 10, 0]} -{"sent_id": [1, 3, 9, 10, 2, 0]} -{"sent_id": [1, 3, 0, 4, 2, 11]} -{"sent_id": [0, 5, 3, 4, 2, 14]} -{"sent_id": [4, 10, 13, 8, 0, 5]} -{"sent_id": [2, 3, 1, 7, 11, 8]} -{"sent_id": [3, 7, 0, 2, 8, 10]} -{"sent_id": [3, 20, 6, 9, 2, 11]} -{"sent_id": [0, 3, 11, 4, 1, 12]} -{"sent_id": [4, 7, 19, 27, 15, 26]} -{"sent_id": [1, 2, 0, 13, 12, 8]} -{"sent_id": [1, 5, 6, 4, 3, 11]} -{"sent_id": [1, 12, 0, 2, 4, 6]} -{"sent_id": [2, 4, 1, 3, 5, 13]} -{"sent_id": [6, 1, 5, 3, 2, 0]} -{"sent_id": [1, 4, 2, 0, 3, 14]} -{"sent_id": [3, 4, 1, 0, 2, 13]} -{"sent_id": [5, 2, 1, 4, 6, 0]} -{"sent_id": [13, 2, 4, 3, 0, 6]} -{"sent_id": [2, 8, 3, 4, 1, 6]} -{"sent_id": [10, 3, 2, 0, 11, 6]} -{"sent_id": [3, 1, 0, 2, 4, 6]} -{"sent_id": [0, 2, 4, 1, 5, 3]} -{"sent_id": [1, 2, 3, 6, 4, 7]} -{"sent_id": [2, 1, 0, 3, 5, 11]} -{"sent_id": [2, 3, 0, 17, 4, 11]} -{"sent_id": [0, 2, 1, 4, 3, 8]} -{"sent_id": [2, 4, 7, 10, 8, 0]} -{"sent_id": [1, 0, 3, 11, 6, 2]} -{"sent_id": [2, 3, 5, 4, 15, 17]} -{"sent_id": [3, 0, 4, 2, 1, 9]} -{"sent_id": [0, 1, 4, 2, 3, 13]} -{"sent_id": [2, 3, 5, 0, 1, 4]} -{"sent_id": [2, 1, 3, 9, 7, 0]} -{"sent_id": [2, 3, 4, 11, 0, 15]} -{"sent_id": [2, 4, 0, 8, 5, 9]} -{"sent_id": [3, 4, 8, 1, 12, 2]} -{"sent_id": [0, 22, 13, 1, 21, 3]} -{"sent_id": [3, 2, 1, 0, 13, 10]} -{"sent_id": [0, 2, 1, 7, 9, 3]} -{"sent_id": [0, 1, 20, 5, 2, 18]} -{"sent_id": [2, 1, 7, 11, 0, 8]} -{"sent_id": [7, 3, 0, 2, 1, 9]} -{"sent_id": [1, 0, 2, 3, 15, 6]} -{"sent_id": [3, 1, 2, 10, 0, 4]} -{"sent_id": [0, 1, 5, 8, 11, 7]} -{"sent_id": [0, 1, 2, 8, 4, 15]} -{"sent_id": [5, 2, 0, 9, 3, 1]} -{"sent_id": [1, 4, 2, 3, 14, 5]} -{"sent_id": [1, 4, 3, 0, 8, 7]} -{"sent_id": [0, 1, 10, 2, 3, 5]} -{"sent_id": [1, 2, 5, 4, 7, 0]} -{"sent_id": [2, 5, 0, 1, 9, 8]} -{"sent_id": [3, 1, 2, 0, 5, 4]} -{"sent_id": [0, 1, 9, 8, 4, 2]} -{"sent_id": [3, 2, 1, 6, 12, 11]} -{"sent_id": [8, 4, 10, 1, 7, 0]} -{"sent_id": [3, 1, 0, 2, 6, 4]} -{"sent_id": [3, 1, 5, 0, 8, 4]} -{"sent_id": [4, 3, 8, 0, 9, 11]} -{"sent_id": [2, 1, 4, 3, 13, 8]} -{"sent_id": [14, 3, 2, 6, 0, 5]} -{"sent_id": [3, 15, 1, 2, 4, 7]} -{"sent_id": [1, 7, 6, 0, 2, 11]} -{"sent_id": [1, 5, 0, 2, 14, 11]} -{"sent_id": [18, 1, 0, 5, 2, 17]} -{"sent_id": [3, 1, 4, 8, 10, 0]} -{"sent_id": [2, 0, 14, 7, 4, 3]} -{"sent_id": [5, 14, 1, 10, 0, 2]} -{"sent_id": [0, 2, 10, 7, 12, 3]} -{"sent_id": [3, 4, 1, 0, 2, 10]} -{"sent_id": [15, 1, 0, 4, 3, 17]} -{"sent_id": [2, 1, 5, 0, 6, 4]} -{"sent_id": [3, 10, 11, 4, 0, 7]} -{"sent_id": [1, 2, 4, 3, 13, 9]} -{"sent_id": [1, 3, 4, 12, 8, 2]} -{"sent_id": [1, 0, 13, 2, 3, 12]} -{"sent_id": [9, 0, 1, 10, 15, 5]} -{"sent_id": [12, 3, 0, 4, 6, 8]} -{"sent_id": [1, 3, 2, 5, 4, 9]} -{"sent_id": [8, 1, 0, 5, 7, 12]} -{"sent_id": [1, 2, 9, 3, 12, 4]} -{"sent_id": [1, 5, 2, 4, 17, 21]} -{"sent_id": [1, 7, 0, 2, 3, 10]} -{"sent_id": [1, 2, 0, 5, 3, 4]} -{"sent_id": [2, 1, 0, 4, 15, 6]} -{"sent_id": [1, 0, 2, 3, 6, 13]} -{"sent_id": [0, 1, 3, 4, 2, 5]} -{"sent_id": [1, 2, 5, 3, 4, 16]} -{"sent_id": [6, 0, 2, 11, 10, 1]} -{"sent_id": [0, 2, 1, 16, 3, 15]} -{"sent_id": [1, 16, 17, 3, 13, 9]} -{"sent_id": [2, 5, 10, 4, 0, 13]} -{"sent_id": [5, 12, 4, 6, 3, 9]} -{"sent_id": [7, 4, 0, 1, 5, 6]} -{"sent_id": [5, 7, 4, 3, 6, 2]} -{"sent_id": [2, 0, 5, 3, 6, 1]} -{"sent_id": [2, 1, 7, 0, 3, 12]} -{"sent_id": [1, 5, 0, 4, 3, 6]} -{"sent_id": [2, 3, 5, 14, 1, 0]} -{"sent_id": [3, 8, 4, 1, 6, 5]} -{"sent_id": [11, 0, 17, 3, 2, 19]} -{"sent_id": [3, 2, 15, 14, 17, 12]} -{"sent_id": [3, 2, 16, 4, 0, 6]} -{"sent_id": [1, 2, 6, 4, 3, 8]} -{"sent_id": [1, 3, 2, 5, 6, 11]} -{"sent_id": [3, 9, 4, 14, 12, 2]} -{"sent_id": [2, 4, 3, 17, 5, 1]} -{"sent_id": [1, 0, 9, 2, 6, 7]} -{"sent_id": [4, 6, 13, 16, 5, 14]} -{"sent_id": [1, 4, 2, 7, 6, 5]} -{"sent_id": [13, 4, 22, 1, 10, 0]} -{"sent_id": [2, 3, 7, 6, 4, 5]} -{"sent_id": [4, 1, 2, 0, 3, 15]} -{"sent_id": [3, 4, 13, 8, 5, 1]} -{"sent_id": [1, 9, 3, 5, 0, 2]} -{"sent_id": [3, 8, 0, 2, 1, 6]} -{"sent_id": [3, 4, 1, 0, 11, 5]} -{"sent_id": [1, 3, 12, 0, 5, 9]} -{"sent_id": [5, 1, 6, 3, 4, 2]} -{"sent_id": [2, 4, 0, 5, 9, 1]} -{"sent_id": [1, 2, 4, 11, 0, 3]} -{"sent_id": [5, 3, 0, 1, 6, 9]} -{"sent_id": [7, 8, 17, 16, 0, 6]} -{"sent_id": [0, 4, 1, 3, 2, 5]} -{"sent_id": [3, 0, 14, 4, 5, 9]} -{"sent_id": [5, 1, 0, 6, 8, 2]} -{"sent_id": [5, 4, 7, 13, 0, 3]} -{"sent_id": [3, 1, 2, 11, 4, 6]} -{"sent_id": [6, 3, 9, 16, 4, 7]} -{"sent_id": [2, 1, 3, 0, 4, 10]} -{"sent_id": [1, 4, 14, 5, 3, 15]} -{"sent_id": [4, 1, 2, 9, 5, 8]} -{"sent_id": [0, 3, 11, 7, 2, 15]} -{"sent_id": [4, 3, 5, 8, 11, 0]} -{"sent_id": [1, 3, 2, 6, 10, 17]} -{"sent_id": [4, 0, 12, 5, 6, 13]} -{"sent_id": [1, 2, 4, 17, 8, 3]} -{"sent_id": [2, 12, 4, 11, 1, 7]} -{"sent_id": [2, 1, 6, 3, 0, 4]} -{"sent_id": [0, 5, 2, 13, 4, 8]} -{"sent_id": [3, 12, 0, 1, 2, 13]} -{"sent_id": [1, 3, 2, 13, 6, 4]} -{"sent_id": [1, 6, 5, 2, 4, 10]} -{"sent_id": [4, 10, 5, 1, 7, 12]} -{"sent_id": [2, 5, 8, 11, 6, 1]} -{"sent_id": [1, 3, 2, 9, 0, 6]} -{"sent_id": [1, 2, 4, 3, 5, 15]} -{"sent_id": [11, 12, 2, 1, 0, 8]} -{"sent_id": [0, 1, 10, 11, 3, 2]} -{"sent_id": [8, 14, 1, 6, 3, 2]} -{"sent_id": [1, 0, 7, 10, 11, 14]} -{"sent_id": [3, 2, 4, 5, 6, 1]} -{"sent_id": [0, 4, 2, 5, 9, 8]} -{"sent_id": [3, 4, 5, 13, 12, 2]} -{"sent_id": [4, 2, 9, 8, 5, 6]} -{"sent_id": [0, 3, 13, 4, 8, 1]} -{"sent_id": [0, 1, 8, 2, 5, 3]} -{"sent_id": [5, 2, 1, 9, 13, 12]} -{"sent_id": [1, 0, 7, 13, 4, 5]} -{"sent_id": [5, 17, 16, 2, 1, 10]} -{"sent_id": [2, 8, 9, 1, 0, 3]} -{"sent_id": [1, 5, 0, 2, 20, 7]} -{"sent_id": [1, 4, 3, 2, 0, 8]} -{"sent_id": [3, 1, 2, 5, 4, 12]} -{"sent_id": [0, 2, 3, 1, 8, 11]} -{"sent_id": [4, 12, 3, 11, 6, 5]} -{"sent_id": [3, 2, 1, 4, 0, 5]} -{"sent_id": [1, 2, 7, 3, 8, 0]} -{"sent_id": [3, 4, 2, 15, 5, 1]} -{"sent_id": [2, 5, 6, 9, 0, 1]} -{"sent_id": [1, 2, 12, 0, 17, 14]} -{"sent_id": [2, 5, 3, 4, 6, 0]} -{"sent_id": [3, 1, 0, 4, 5, 9]} -{"sent_id": [2, 0, 1, 4, 3, 5]} -{"sent_id": [1, 6, 2, 7, 8, 0]} -{"sent_id": [3, 1, 4, 5, 2, 6]} -{"sent_id": [3, 6, 1, 0, 2, 15]} -{"sent_id": [0, 14, 22, 15, 2, 1]} -{"sent_id": [1, 6, 2, 8, 3, 7]} -{"sent_id": [2, 0, 1, 8, 6, 4]} -{"sent_id": [4, 3, 2, 1, 0, 11]} -{"sent_id": [1, 2, 3, 7, 4, 6]} -{"sent_id": [0, 1, 4, 12, 3, 13]} -{"sent_id": [0, 3, 2, 10, 1, 4]} -{"sent_id": [1, 3, 13, 7, 4, 2]} -{"sent_id": [3, 11, 5, 2, 1, 0]} -{"sent_id": [1, 8, 0, 2, 3, 15]} -{"sent_id": [1, 2, 3, 10, 0, 9]} -{"sent_id": [1, 0, 3, 4, 16, 10]} -{"sent_id": [3, 4, 5, 8, 6, 10]} -{"sent_id": [1, 3, 7, 0, 13, 4]} -{"sent_id": [2, 3, 8, 4, 5, 14]} -{"sent_id": [1, 0, 2, 16, 11, 4]} -{"sent_id": [3, 2, 0, 1, 10, 9]} -{"sent_id": [1, 2, 7, 6, 13, 3]} -{"sent_id": [0, 2, 12, 6, 1, 8]} -{"sent_id": [10, 16, 4, 3, 11, 13]} -{"sent_id": [4, 5, 16, 7, 2, 1]} -{"sent_id": [1, 2, 4, 14, 0, 15]} -{"sent_id": [3, 1, 0, 2]} -{"sent_id": [2, 1, 11, 3, 14, 8]} -{"sent_id": [15, 1, 4, 2, 6, 7]} -{"sent_id": [3, 1, 5, 15, 4, 13]} -{"sent_id": [1, 2, 14, 0, 4, 3]} -{"sent_id": [1, 17, 5, 0, 4, 3]} -{"sent_id": [3, 4, 0, 2, 1, 7]} -{"sent_id": [2, 4, 1, 5, 7, 6]} -{"sent_id": [0, 2, 3, 19, 1, 5]} -{"sent_id": [0, 1, 3, 4, 2, 8]} -{"sent_id": [3, 1, 0, 2, 6, 5]} -{"sent_id": [4, 10, 13, 12, 3, 2]} -{"sent_id": [1, 3, 2, 5, 4, 0]} -{"sent_id": [8, 2, 4, 15, 3, 5]} -{"sent_id": [1, 6, 9, 11, 7, 8]} -{"sent_id": [13, 1, 4, 6, 0, 5]} -{"sent_id": [1, 2, 7, 3, 4, 16]} -{"sent_id": [1, 3, 2, 4, 7, 13]} -{"sent_id": [7, 8, 0, 16, 10, 2]} -{"sent_id": [2, 5, 1, 6, 3, 11]} -{"sent_id": [13, 9, 5, 0, 3, 4]} -{"sent_id": [2, 1, 8, 15, 0, 3]} -{"sent_id": [3, 1, 4, 2, 0, 11]} -{"sent_id": [1, 4, 5, 2, 0, 6]} -{"sent_id": [2, 4, 3, 5, 8, 7]} -{"sent_id": [3, 10, 4, 6, 9, 1]} -{"sent_id": [2, 3, 1, 0, 14, 5]} -{"sent_id": [10, 2, 15, 3, 12, 16]} -{"sent_id": [2, 3, 4, 13, 5, 0]} -{"sent_id": [3, 13, 1, 2, 4, 10]} -{"sent_id": [6, 4, 5, 3, 2, 10]} -{"sent_id": [4, 0, 12, 8, 9, 2]} -{"sent_id": [5, 6, 0, 1, 12, 13]} -{"sent_id": [6, 3, 2, 1, 0, 4]} -{"sent_id": [4, 3, 0, 5, 1, 2]} -{"sent_id": [3, 1, 14, 2, 5, 4]} -{"sent_id": [2, 5, 4, 1, 9, 12]} -{"sent_id": [2, 4, 1, 5, 3, 7]} -{"sent_id": [2, 3, 4, 14, 8, 15]} -{"sent_id": [2, 1, 4, 5, 8, 7]} -{"sent_id": [4, 1, 2, 6, 5, 3]} -{"sent_id": [4, 5, 0, 2, 13, 3]} -{"sent_id": [1, 3, 2, 4, 11, 0]} -{"sent_id": [0, 11, 1, 7, 3, 4]} -{"sent_id": [3, 0, 13, 7, 1, 4]} -{"sent_id": [1, 4, 2, 9, 5, 0]} -{"sent_id": [4, 1, 2, 3, 7, 6]} -{"sent_id": [3, 1, 2, 4, 0, 7]} -{"sent_id": [10, 1, 3, 2, 4, 11]} -{"sent_id": [1, 2, 4, 11, 7, 6]} -{"sent_id": [1, 8, 2, 3, 7, 6]} -{"sent_id": [1, 3, 8, 10, 4, 11]} -{"sent_id": [3, 4, 1, 5, 9, 10]} -{"sent_id": [1, 9, 0, 2, 3, 4]} -{"sent_id": [1, 6, 7, 13, 12, 5]} -{"sent_id": [3, 2, 11, 1, 6, 21]} -{"sent_id": [4, 10, 3, 14, 1, 5]} -{"sent_id": [1, 2, 0, 10, 8, 7]} -{"sent_id": [3, 2, 1, 5, 6, 14]} -{"sent_id": [1, 2, 12, 4, 7, 6]} -{"sent_id": [4, 0, 10, 8, 2, 3]} -{"sent_id": [1, 3, 2, 4, 7, 6]} -{"sent_id": [1, 2, 7, 5, 0, 4]} -{"sent_id": [4, 0, 2, 3, 1, 16]} -{"sent_id": [1, 3, 4, 2, 0, 7]} -{"sent_id": [3, 0, 11, 4, 1, 5]} -{"sent_id": [1, 0, 5, 4, 10, 3]} -{"sent_id": [3, 0, 8, 4, 2, 1]} -{"sent_id": [1, 10, 2, 3, 4, 0]} -{"sent_id": [2, 3, 14, 7, 1, 0]} -{"sent_id": [2, 7, 6, 0, 1, 5]} -{"sent_id": [6, 2, 3, 1, 0, 5]} -{"sent_id": [1, 5, 4, 2, 0, 10]} -{"sent_id": [3, 2, 9, 10, 13, 11]} -{"sent_id": [2, 0, 4, 3, 5, 1]} -{"sent_id": [0, 1, 6, 7, 11, 5]} -{"sent_id": [2, 4, 1, 5, 0, 13]} -{"sent_id": [3, 12, 1, 6, 0, 13]} -{"sent_id": [0, 2, 10, 1, 5, 14]} -{"sent_id": [0, 4, 5, 3, 12, 1]} -{"sent_id": [3, 4, 1, 10, 2, 7]} -{"sent_id": [1, 5, 13, 14, 2, 0]} -{"sent_id": [2, 0, 10, 7, 1, 3]} -{"sent_id": [2, 1, 0, 5, 7, 4]} -{"sent_id": [1, 7, 2, 6, 12, 0]} -{"sent_id": [5, 6, 10, 12, 2, 8]} -{"sent_id": [4, 1, 6, 15, 8, 7]} -{"sent_id": [2, 1, 6, 5, 11, 4]} -{"sent_id": [4, 1, 0, 2, 3, 7]} -{"sent_id": [0, 3, 10, 1, 13, 2]} -{"sent_id": [4, 1, 15, 3, 2, 9]} -{"sent_id": [0, 14, 18, 3, 8, 13]} -{"sent_id": [12, 3, 2, 11, 7, 0]} -{"sent_id": [3, 8, 1, 0, 6, 4]} -{"sent_id": [3, 2, 1, 6, 5, 4]} -{"sent_id": [1, 9, 3, 17, 7, 4]} -{"sent_id": [1, 8, 2, 4, 9, 0]} -{"sent_id": [12, 10, 0, 13, 11, 16]} -{"sent_id": [1, 8, 9, 2, 4, 3]} -{"sent_id": [3, 1, 18, 0, 12, 2]} -{"sent_id": [1, 0, 3, 4, 2, 6]} -{"sent_id": [7, 11, 1, 0, 4, 5]} -{"sent_id": [3, 5, 1, 2, 8, 0]} -{"sent_id": [1, 2, 4, 3, 8, 0]} -{"sent_id": [3, 2, 4, 8, 1, 0]} -{"sent_id": [10, 3, 0, 1, 6, 2]} -{"sent_id": [1, 3, 4, 0, 2, 14]} -{"sent_id": [1, 13, 3, 9, 8, 2]} -{"sent_id": [3, 2, 1, 12, 9, 11]} -{"sent_id": [0, 14, 9, 3, 2, 13]} -{"sent_id": [5, 2, 1, 0, 10, 12]} -{"sent_id": [3, 0, 4, 16, 6, 1]} -{"sent_id": [1, 0, 4, 2, 9, 6]} -{"sent_id": [3, 7, 8, 18, 2, 10]} -{"sent_id": [1, 0, 7, 14, 6, 2]} -{"sent_id": [2, 6, 3, 4, 5, 12]} -{"sent_id": [1, 4, 5, 2, 3, 18]} -{"sent_id": [1, 5, 4, 3, 8, 13]} -{"sent_id": [1, 2, 5, 6, 7, 4]} -{"sent_id": [1, 5, 6, 0, 2, 11]} -{"sent_id": [1, 16, 0, 3, 4, 2]} -{"sent_id": [2, 3, 5, 4, 6, 0]} -{"sent_id": [3, 1, 11, 4, 7, 2]} -{"sent_id": [5, 7, 9, 0, 11, 4]} -{"sent_id": [0, 3, 4, 10, 5, 12]} -{"sent_id": [2, 0, 7, 11, 4, 6]} -{"sent_id": [3, 1, 0, 2, 4, 5]} -{"sent_id": [1, 3, 2, 4, 6, 5]} -{"sent_id": [2, 1, 9, 4, 3, 10]} -{"sent_id": [1, 2, 0, 5, 4, 3]} -{"sent_id": [1, 5, 0, 2, 7, 6]} -{"sent_id": [1, 4, 8, 3, 2, 9]} -{"sent_id": [0, 1, 2, 11, 9, 4]} -{"sent_id": [0, 2, 4, 3, 1, 6]} -{"sent_id": [1, 3, 10, 6, 11, 2]} -{"sent_id": [3, 12, 4, 2, 10, 15]} -{"sent_id": [0, 4, 3, 2, 1, 10]} -{"sent_id": [3, 4, 2, 10, 7, 12]} -{"sent_id": [3, 17, 1, 7, 4, 19]} -{"sent_id": [6, 8, 3, 7, 15, 5]} -{"sent_id": [2, 3, 5, 6, 4, 13]} -{"sent_id": [9, 0, 19, 8, 20, 11]} -{"sent_id": [0, 4, 5, 19, 1, 2]} -{"sent_id": [0, 4, 8, 2, 5, 7]} -{"sent_id": [1, 2, 0, 5, 4, 12]} -{"sent_id": [3, 1, 6, 4, 5, 17]} -{"sent_id": [0, 7, 1, 2, 9, 10]} -{"sent_id": [4, 5, 11, 0, 3, 7]} -{"sent_id": [4, 3, 2, 1, 6, 5]} -{"sent_id": [3, 1, 2, 0, 13, 4]} -{"sent_id": [2, 3, 0, 12, 4, 1]} -{"sent_id": [4, 3, 5, 1, 0, 6]} -{"sent_id": [1, 2, 13, 5, 11, 4]} -{"sent_id": [1, 2, 3, 5, 10, 9]} -{"sent_id": [1, 2, 3, 0, 6, 10]} -{"sent_id": [5, 4, 2, 0, 6, 7]} -{"sent_id": [4, 1, 3, 0, 10, 17]} -{"sent_id": [9, 0, 2, 1, 5, 3]} -{"sent_id": [1, 5, 2, 0, 4, 3]} -{"sent_id": [1, 0, 5, 2, 7, 8]} -{"sent_id": [11, 13, 4, 0, 2, 5]} -{"sent_id": [4, 5, 6, 3, 14, 8]} -{"sent_id": [0, 1, 3, 2, 18, 11]} -{"sent_id": [3, 7, 4, 1, 2, 0]} -{"sent_id": [3, 0, 8, 13, 1, 2]} -{"sent_id": [1, 2, 5, 14, 6, 9]} -{"sent_id": [2, 3, 4, 5, 7, 6]} -{"sent_id": [4, 0, 1, 3, 6, 2]} -{"sent_id": [11, 10, 6, 15, 12, 3]} -{"sent_id": [1, 4, 6, 2, 7, 16]} -{"sent_id": [6, 11, 15, 4, 5, 3]} -{"sent_id": [1, 2, 5, 7, 8, 0]} -{"sent_id": [2, 1, 4, 6, 11, 5]} -{"sent_id": [2, 1, 3, 9, 8, 15]} -{"sent_id": [1, 2, 3, 7, 4, 8]} -{"sent_id": [1, 4, 5, 2, 6, 9]} -{"sent_id": [2, 1, 3, 4, 5, 6]} -{"sent_id": [4, 3, 8, 1, 9, 2]} -{"sent_id": [1, 8, 2, 5, 3, 9]} -{"sent_id": [5, 3, 4, 2, 1, 14]} -{"sent_id": [1, 2, 3, 12, 6, 14]} -{"sent_id": [4, 5, 6, 3, 15, 2]} -{"sent_id": [9, 8, 6, 4, 0, 18]} -{"sent_id": [1, 7, 4, 2, 3, 0]} -{"sent_id": [6, 1, 15, 13, 0, 7]} -{"sent_id": [1, 3, 4, 7, 0, 6]} -{"sent_id": [3, 5, 11, 4, 2, 14]} -{"sent_id": [9, 3, 1, 4, 5, 0]} -{"sent_id": [9, 11, 10, 7, 12, 13]} -{"sent_id": [3, 14, 2, 7, 1, 0]} -{"sent_id": [1, 0, 2, 8, 16, 3]} -{"sent_id": [2, 1, 10, 3, 4, 9]} -{"sent_id": [1, 3, 4, 2, 11, 0]} -{"sent_id": [1, 4, 2, 10, 0, 5]} -{"sent_id": [3, 11, 9, 0, 17, 13]} -{"sent_id": [1, 2, 6, 11, 9, 0]} -{"sent_id": [2, 4, 1, 3, 16, 11]} -{"sent_id": [3, 1, 4, 2, 0, 5]} -{"sent_id": [1, 3, 11, 8, 5, 4]} -{"sent_id": [0, 4, 12, 5, 3, 6]} -{"sent_id": [0, 14, 1, 13, 3, 4]} -{"sent_id": [1, 2, 4, 0, 3, 6]} -{"sent_id": [3, 9, 1, 2, 7, 4]} -{"sent_id": [2, 3, 0, 4, 5, 17]} -{"sent_id": [1, 3, 0, 9, 12, 7]} -{"sent_id": [3, 1, 9, 2, 12, 0]} -{"sent_id": [4, 1, 9, 2, 6, 5]} -{"sent_id": [2, 6, 10, 3, 11, 5]} -{"sent_id": [1, 3, 2, 4, 8, 10]} -{"sent_id": [1, 2, 0, 3, 4, 11]} -{"sent_id": [3, 1, 4, 0, 5, 2]} -{"sent_id": [11, 4, 1, 0, 3, 5]} -{"sent_id": [0, 1, 3, 13, 2, 16]} -{"sent_id": [5, 4, 1, 13, 7, 2]} -{"sent_id": [4, 3, 2, 1, 12, 18]} -{"sent_id": [2, 0, 6, 16, 7, 17]} -{"sent_id": [6, 4, 3, 7, 1, 2]} -{"sent_id": [4, 1, 5, 3, 2, 16]} -{"sent_id": [3, 2, 4, 1, 5, 7]} -{"sent_id": [8, 9, 10, 4, 2, 16]} -{"sent_id": [1, 7, 2, 4, 0, 14]} -{"sent_id": [3, 2, 0, 12, 1, 10]} -{"sent_id": [0, 4, 15, 12, 3, 1]} -{"sent_id": [1, 2, 4, 6, 10, 7]} -{"sent_id": [2, 1, 3, 12, 4, 7]} -{"sent_id": [2, 6, 4, 1, 5, 3]} -{"sent_id": [1, 2, 7, 3, 0, 8]} -{"sent_id": [1, 3, 13, 4, 2, 0]} -{"sent_id": [4, 1, 0, 2, 5, 17]} -{"sent_id": [4, 3, 2, 9, 0, 7]} -{"sent_id": [7, 3, 4, 16, 10, 6]} -{"sent_id": [2, 3, 4, 0, 9, 6]} -{"sent_id": [1, 6, 2, 13, 0, 3]} -{"sent_id": [1, 2, 3, 8, 6, 17]} -{"sent_id": [11, 10, 4, 3, 2, 0]} -{"sent_id": [13, 3, 0, 2, 12, 14]} -{"sent_id": [3, 1, 2, 7, 6, 8]} -{"sent_id": [4, 5, 6, 7, 12, 10]} -{"sent_id": [3, 1, 5, 2, 4, 10]} -{"sent_id": [3, 2, 1, 6, 7, 5]} -{"sent_id": [1, 2, 3, 5, 7, 6]} -{"sent_id": [2, 4, 6, 11, 0, 1]} -{"sent_id": [1, 7, 2, 0, 3, 4]} -{"sent_id": [2, 0, 3, 13, 5, 1]} -{"sent_id": [0, 1, 2, 6, 5, 8]} -{"sent_id": [2, 3, 5, 4, 6, 8]} -{"sent_id": [1, 2, 9, 12, 10, 0]} -{"sent_id": [3, 5, 0, 6, 1, 18]} -{"sent_id": [0, 3, 10, 11, 1, 2]} -{"sent_id": [4, 6, 0, 5, 12, 9]} -{"sent_id": [0, 1, 2, 3, 4, 5]} -{"sent_id": [3, 2, 1, 15, 4, 16]} -{"sent_id": [3, 2, 5, 9, 14, 7]} -{"sent_id": [2, 3, 16, 1, 0, 6]} -{"sent_id": [3, 15, 12, 0, 1, 2]} -{"sent_id": [1, 2, 4, 7, 9, 5]} -{"sent_id": [1, 8, 2, 3, 7, 5]} -{"sent_id": [0, 4, 20, 2, 1, 6]} -{"sent_id": [3, 0, 1, 6, 5, 2]} -{"sent_id": [1, 2, 3, 16, 0, 11]} -{"sent_id": [1, 7, 0, 6, 10, 3]} -{"sent_id": [2, 0, 9, 3, 4, 12]} -{"sent_id": [1, 2, 3, 12, 5, 6]} -{"sent_id": [2, 1, 0, 8, 9, 10]} -{"sent_id": [1, 2, 8, 6, 9, 12]} -{"sent_id": [1, 13, 9, 10, 0, 3]} -{"sent_id": [6, 2, 13, 0, 11, 7]} -{"sent_id": [1, 7, 11, 13, 5, 4]} -{"sent_id": [9, 13, 1, 3, 11, 7]} -{"sent_id": [3, 0, 1, 4, 2, 13]} -{"sent_id": [1, 4, 3, 0, 5, 2]} -{"sent_id": [2, 9, 10, 1, 14, 11]} -{"sent_id": [3, 6, 2, 9, 4, 0]} -{"sent_id": [2, 4, 15, 7, 5, 3]} -{"sent_id": [3, 1, 9, 6, 4, 8]} -{"sent_id": [1, 9, 2, 3, 5, 17]} -{"sent_id": [0, 3, 2, 1, 12, 6]} -{"sent_id": [2, 3, 0, 4, 5, 11]} -{"sent_id": [2, 1, 3, 8, 12, 9]} -{"sent_id": [3, 5, 2, 1, 13, 12]} -{"sent_id": [5, 3, 1, 0, 2, 4]} -{"sent_id": [1, 4, 3, 0, 14, 5]} -{"sent_id": [0, 1, 2, 8, 3, 9]} -{"sent_id": [1, 0, 3, 2, 5, 9]} -{"sent_id": [4, 3, 2, 1, 8, 9]} -{"sent_id": [8, 18, 2, 1, 14, 3]} -{"sent_id": [3, 0, 1, 2, 4, 12]} -{"sent_id": [1, 2, 5, 14, 3, 0]} -{"sent_id": [2, 3, 4, 15, 5, 7]} -{"sent_id": [3, 0, 1, 2, 5, 4]} -{"sent_id": [1, 4, 0, 2, 3, 7]} -{"sent_id": [2, 9, 3, 0, 4, 5]} -{"sent_id": [1, 11, 7, 6, 5, 4]} -{"sent_id": [0, 13, 6, 14, 11, 9]} -{"sent_id": [3, 0, 2, 12, 1, 5]} -{"sent_id": [3, 0, 2, 9, 8, 1]} -{"sent_id": [3, 2, 1, 10, 4, 11]} -{"sent_id": [3, 6, 1, 2, 5, 17]} -{"sent_id": [7, 4, 0, 11, 14, 13]} -{"sent_id": [1, 2, 0, 12, 8, 7]} -{"sent_id": [1, 4, 2, 5, 7, 3]} -{"sent_id": [0, 7, 10, 2, 3, 4]} -{"sent_id": [3, 4, 5, 1, 7, 6]} -{"sent_id": [1, 3, 2, 9, 4, 5]} -{"sent_id": [2, 1, 9, 6, 8, 15]} -{"sent_id": [4, 3, 2, 1, 15, 13]} -{"sent_id": [4, 1, 10, 13, 2, 0]} -{"sent_id": [11, 16, 3, 2, 0, 1]} -{"sent_id": [1, 2, 0, 4, 10, 9]} -{"sent_id": [3, 2, 0, 4, 5, 1]} -{"sent_id": [3, 7, 11, 9, 2, 6]} -{"sent_id": [3, 2, 4, 5, 6, 7]} -{"sent_id": [5, 1, 2, 3, 4, 6]} -{"sent_id": [3, 4, 0, 1, 2, 6]} -{"sent_id": [0, 12, 5, 13, 6, 1]} -{"sent_id": [1, 8, 3, 0, 9, 10]} -{"sent_id": [1, 7, 3, 5, 2, 4]} -{"sent_id": [0, 12, 1, 2, 8, 3]} -{"sent_id": [1, 3, 2, 4, 6, 10]} -{"sent_id": [1, 0, 5, 13, 4, 6]} -{"sent_id": [0, 3, 2, 1, 8, 18]} -{"sent_id": [2, 0, 3, 10, 1, 6]} -{"sent_id": [6, 9, 5, 0, 2, 1]} -{"sent_id": [0, 1, 2, 3, 8, 7]} -{"sent_id": [3, 1, 10, 4, 0, 2]} -{"sent_id": [2, 1, 4, 12, 0, 8]} -{"sent_id": [0, 4, 1, 3, 2]} -{"sent_id": [3, 1, 0, 4, 9, 11]} -{"sent_id": [3, 1, 4, 0, 9, 12]} -{"sent_id": [2, 0, 1, 19, 3, 15]} -{"sent_id": [1, 2, 5, 6, 0, 7]} -{"sent_id": [9, 5, 1, 4, 2, 0]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [4, 0, 1, 5, 2, 3]} -{"sent_id": [1, 0, 9, 3, 11, 6]} -{"sent_id": [1, 2, 5, 6, 4, 3]} -{"sent_id": [7, 8, 6, 2, 3, 9]} -{"sent_id": [2, 3, 5, 4, 6, 0]} -{"sent_id": [1, 5, 2, 6, 3, 4]} -{"sent_id": [4, 1, 2, 3, 6, 0]} -{"sent_id": [4, 1, 2, 8, 6, 0]} -{"sent_id": [3, 1, 13, 0, 4, 7]} -{"sent_id": [1, 0, 4, 2, 6, 5]} -{"sent_id": [1, 2, 3, 4, 11, 8]} -{"sent_id": [1, 7, 16, 0, 11, 9]} -{"sent_id": [0, 4, 1, 2, 13, 12]} -{"sent_id": [1, 0, 13, 4, 8, 11]} -{"sent_id": [2, 12, 3, 1, 4, 5]} -{"sent_id": [1, 2, 3, 0, 8, 6]} -{"sent_id": [0, 1, 4, 10, 13, 5]} -{"sent_id": [5, 3, 14, 2, 7, 4]} -{"sent_id": [2, 1, 4, 5, 7, 3]} -{"sent_id": [0, 1, 2, 5, 19, 6]} -{"sent_id": [3, 1, 10, 2, 7, 9]} -{"sent_id": [1, 4, 10, 11, 0, 5]} -{"sent_id": [5, 4, 14, 0, 11, 10]} -{"sent_id": [5, 0, 1, 10, 2, 15]} -{"sent_id": [2, 3, 0, 8, 5, 7]} -{"sent_id": [0, 4, 3, 5, 6, 9]} -{"sent_id": [2, 6, 1, 8, 5, 4]} -{"sent_id": [3, 1, 2, 8, 4, 12]} -{"sent_id": [6, 3, 2, 5, 14, 13]} -{"sent_id": [0, 4, 3, 1, 12, 11]} -{"sent_id": [1, 2, 4, 3, 9, 15]} -{"sent_id": [0, 3, 4, 5, 12, 1]} -{"sent_id": [4, 3, 6, 5, 1, 7]} -{"sent_id": [1, 3, 13, 4, 0, 2]} -{"sent_id": [1, 2, 4, 0, 9, 7]} -{"sent_id": [2, 0, 1, 3, 4, 5]} -{"sent_id": [2, 3, 5, 4, 12, 0]} -{"sent_id": [2, 5, 1, 3, 4, 0]} -{"sent_id": [8, 3, 0, 1, 2, 4]} -{"sent_id": [3, 5, 1, 4, 0, 16]} -{"sent_id": [3, 2, 13, 5, 8, 6]} -{"sent_id": [3, 9, 4, 1, 2, 0]} -{"sent_id": [1, 10, 0, 3, 9, 2]} -{"sent_id": [4, 6, 9, 2, 1, 18]} -{"sent_id": [2, 1, 12, 6, 0, 8]} -{"sent_id": [2, 0, 4, 3, 5, 1]} -{"sent_id": [1, 2, 3, 4, 0, 5]} -{"sent_id": [3, 2, 1, 4, 7, 5]} -{"sent_id": [1, 2, 4, 5, 11, 0]} -{"sent_id": [3, 2, 1, 15, 4, 9]} -{"sent_id": [2, 3, 1, 6, 8, 13]} -{"sent_id": [2, 4, 9, 11, 1, 5]} -{"sent_id": [0, 1, 5, 2, 10, 11]} -{"sent_id": [5, 1, 6, 0, 2, 9]} -{"sent_id": [2, 1, 4, 3, 5, 15]} -{"sent_id": [2, 5, 12, 6, 1, 9]} -{"sent_id": [1, 2, 3, 5, 8, 4]} -{"sent_id": [1, 2, 3, 4, 15, 16]} -{"sent_id": [3, 4, 13, 5, 14, 2]} -{"sent_id": [2, 1, 3, 6, 0, 11]} -{"sent_id": [3, 2, 12, 11, 4, 6]} -{"sent_id": [0, 1, 3, 2, 25, 5]} -{"sent_id": [1, 3, 5, 2, 8, 7]} -{"sent_id": [3, 2, 1, 5, 4, 6]} -{"sent_id": [1, 0, 2, 5, 4, 3]} -{"sent_id": [10, 1, 0, 2, 4, 3]} -{"sent_id": [2, 1, 5, 11, 6, 4]} -{"sent_id": [4, 2, 0, 3, 5, 6]} -{"sent_id": [0, 3, 2, 1, 6, 4]} -{"sent_id": [0, 3, 8, 2, 12, 4]} -{"sent_id": [4, 11, 2, 3, 0, 1]} -{"sent_id": [1, 4, 8, 7, 5, 14]} -{"sent_id": [0, 1, 3, 8, 2, 9]} -{"sent_id": [4, 0, 14, 1, 3, 2]} -{"sent_id": [2, 1, 7, 6, 3, 5]} -{"sent_id": [1, 2, 0, 3, 7, 11]} -{"sent_id": [2, 0, 6, 3, 7, 1]} -{"sent_id": [3, 1, 9, 2, 7, 4]} -{"sent_id": [1, 2, 3, 7, 4, 6]} -{"sent_id": [2, 1, 4, 0, 14, 3]} -{"sent_id": [3, 0, 8, 2, 4, 12]} -{"sent_id": [4, 5, 13, 6, 11, 2]} -{"sent_id": [2, 0, 1, 8, 3, 11]} -{"sent_id": [0, 3, 2, 13, 1, 7]} -{"sent_id": [0, 3, 1, 4, 10, 13]} -{"sent_id": [1, 2, 9, 10, 3, 0]} -{"sent_id": [1, 2, 3, 4, 5, 7]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [2, 0, 1, 6, 7, 12]} -{"sent_id": [3, 1, 2, 14, 4, 0]} -{"sent_id": [0, 2, 7, 3, 1, 8]} -{"sent_id": [2, 8, 1, 9, 0, 3]} -{"sent_id": [1, 6, 2, 5, 3, 9]} -{"sent_id": [4, 2, 3, 5, 14, 10]} -{"sent_id": [4, 1, 13, 0, 7, 2]} -{"sent_id": [1, 0, 12, 3, 4, 2]} -{"sent_id": [0, 1, 18, 6, 13, 2]} -{"sent_id": [4, 11, 1, 5, 2, 14]} -{"sent_id": [3, 12, 6, 7, 0, 1]} -{"sent_id": [4, 1, 2, 5, 3, 0]} -{"sent_id": [3, 1, 0, 12, 2, 15]} -{"sent_id": [1, 3, 2, 4, 13, 0]} -{"sent_id": [3, 1, 8, 0, 2, 5]} -{"sent_id": [0, 5, 1, 2, 4, 6]} -{"sent_id": [1, 0, 3, 2, 10, 4]} -{"sent_id": [0, 13, 2, 10, 5, 12]} -{"sent_id": [0, 1, 2, 4, 3, 11]} -{"sent_id": [3, 1, 0, 5, 4, 10]} -{"sent_id": [3, 1, 4, 2, 13, 0]} -{"sent_id": [1, 0, 2, 7, 4, 3]} -{"sent_id": [5, 13, 6, 0, 3, 12]} -{"sent_id": [1, 15, 4, 2, 6, 9]} -{"sent_id": [2, 0, 1, 7, 3, 9]} -{"sent_id": [4, 5, 6, 1, 7, 11]} -{"sent_id": [3, 1, 0, 2, 6, 7]} -{"sent_id": [1, 2, 4, 5, 0, 6]} -{"sent_id": [1, 2, 0, 5, 13, 12]} -{"sent_id": [1, 4, 7, 2, 5, 6]} -{"sent_id": [1, 8, 7, 12, 0, 9]} -{"sent_id": [2, 1, 13, 3, 6, 5]} -{"sent_id": [4, 13, 5, 6, 3, 9]} -{"sent_id": [1, 4, 5, 2, 6, 0]} -{"sent_id": [3, 9, 0, 18, 4, 17]} -{"sent_id": [1, 4, 2, 0, 3, 12]} -{"sent_id": [3, 6, 7, 15, 5, 10]} -{"sent_id": [1, 3, 4, 2, 5, 7]} -{"sent_id": [3, 1, 17, 20, 11, 0]} -{"sent_id": [1, 3, 0, 2, 11, 4]} -{"sent_id": [1, 3, 7, 2, 8, 5]} -{"sent_id": [4, 11, 2, 1, 8, 9]} -{"sent_id": [5, 8, 2, 10, 6, 4]} -{"sent_id": [4, 13, 0, 1, 12, 6]} -{"sent_id": [1, 3, 8, 4, 10, 2]} -{"sent_id": [2, 1, 7, 3, 4, 5]} -{"sent_id": [5, 2, 0, 1, 8, 9]} -{"sent_id": [4, 7, 2, 9, 5, 6]} -{"sent_id": [2, 0, 1, 3, 6, 4]} -{"sent_id": [4, 0, 17, 7, 2, 3]} -{"sent_id": [2, 0, 3, 4, 9, 6]} -{"sent_id": [1, 5, 2, 4, 6, 15]} -{"sent_id": [11, 3, 1, 2, 15, 18]} -{"sent_id": [1, 2, 10, 3, 7, 0]} -{"sent_id": [1, 0, 2, 8, 4, 3]} -{"sent_id": [11, 4, 2, 0, 17, 1]} -{"sent_id": [2, 1, 3, 12, 0, 15]} -{"sent_id": [3, 0, 9, 5, 2, 16]} -{"sent_id": [3, 7, 2, 13, 1, 8]} -{"sent_id": [5, 18, 11, 15, 1, 7]} -{"sent_id": [17, 2, 1, 15, 3, 5]} -{"sent_id": [1, 2, 3, 0, 8, 6]} -{"sent_id": [1, 0, 18, 17, 4, 2]} -{"sent_id": [1, 2, 4, 0, 7, 3]} -{"sent_id": [1, 2, 10, 5, 0, 3]} -{"sent_id": [3, 9, 8, 5, 2, 6]} -{"sent_id": [1, 5, 4, 13, 2, 6]} -{"sent_id": [2, 3, 9, 1, 6, 4]} -{"sent_id": [1, 3, 4, 12, 2, 7]} -{"sent_id": [0, 1, 3, 10, 5, 11]} -{"sent_id": [3, 1, 2, 16, 7, 10]} -{"sent_id": [1, 3, 0, 4, 2, 10]} -{"sent_id": [4, 5, 2, 0, 1, 3]} -{"sent_id": [3, 4, 0, 8, 12, 13]} -{"sent_id": [1, 3, 4, 5, 0, 8]} -{"sent_id": [2, 0, 3, 1, 7, 5]} -{"sent_id": [1, 2, 3, 4, 13, 0]} -{"sent_id": [2, 1, 4, 3, 0, 6]} -{"sent_id": [1, 4, 5, 7, 3, 6]} -{"sent_id": [2, 3, 4, 1, 5, 11]} -{"sent_id": [0, 1, 4, 9, 7, 3]} -{"sent_id": [5, 3, 1, 2, 11, 4]} -{"sent_id": [7, 1, 3, 13, 8, 15]} -{"sent_id": [1, 12, 0, 9, 11, 3]} -{"sent_id": [0, 1, 3, 4, 5, 2]} -{"sent_id": [0, 1, 17, 2, 18, 5]} -{"sent_id": [7, 0, 4, 3, 1, 2]} -{"sent_id": [3, 11, 4, 5, 10, 12]} -{"sent_id": [0, 2, 5, 1, 4, 3]} -{"sent_id": [6, 0, 15, 14, 10, 7]} -{"sent_id": [6, 3, 1, 16, 15, 19]} -{"sent_id": [0, 8, 9, 3, 18, 1]} -{"sent_id": [3, 0, 2, 1, 4, 13]} -{"sent_id": [3, 4, 5, 0, 2, 1]} -{"sent_id": [1, 5, 2, 7, 0, 6]} -{"sent_id": [1, 17, 2, 3, 14, 18]} -{"sent_id": [3, 0, 6, 5, 2, 10]} -{"sent_id": [3, 12, 1, 4, 2, 5]} -{"sent_id": [1, 2, 7, 14, 3, 4]} -{"sent_id": [3, 1, 0, 10, 4, 2]} -{"sent_id": [0, 2, 11, 1, 3, 6]} -{"sent_id": [0, 2, 3, 5, 4, 6]} -{"sent_id": [1, 3, 2, 6, 5, 4]} -{"sent_id": [5, 6, 17, 7, 16, 0]} -{"sent_id": [2, 4, 3, 1, 5, 11]} -{"sent_id": [0, 3, 2, 1, 4, 5]} -{"sent_id": [2, 1, 5, 8, 3, 9]} -{"sent_id": [0, 1, 10, 6, 4, 3]} -{"sent_id": [2, 1, 5, 4, 3, 0]} -{"sent_id": [1, 7, 2, 0, 4, 8]} -{"sent_id": [4, 2, 6, 5, 1, 17]} -{"sent_id": [1, 7, 8, 3, 15, 2]} -{"sent_id": [1, 4, 5, 0, 2, 9]} -{"sent_id": [3, 2, 4, 7, 5, 0]} -{"sent_id": [2, 3, 1, 11, 0, 5]} -{"sent_id": [3, 5, 2, 1, 0, 14]} -{"sent_id": [3, 4, 1, 2, 0, 6]} -{"sent_id": [4, 13, 8, 7, 9, 1]} -{"sent_id": [4, 3, 2, 15, 1, 5]} -{"sent_id": [1, 2, 3, 4, 5, 6]} -{"sent_id": [1, 2, 11, 6, 10, 3]} -{"sent_id": [4, 3, 5, 6, 9, 2]} -{"sent_id": [2, 1, 4, 3, 0, 10]} -{"sent_id": [1, 0, 2, 8, 11, 7]} -{"sent_id": [2, 5, 3, 13, 0, 18]} -{"sent_id": [1, 3, 0, 5, 2, 4]} -{"sent_id": [3, 1, 6, 5, 12, 9]} -{"sent_id": [0, 2, 1, 14, 10, 11]} -{"sent_id": [2, 0, 17, 3, 4, 6]} -{"sent_id": [0, 3, 16, 15, 2, 5]} -{"sent_id": [0, 4, 1, 5, 2, 3]} -{"sent_id": [3, 0, 5, 9, 4, 1]} -{"sent_id": [2, 1, 0, 3, 6, 5]} -{"sent_id": [0, 2, 4, 3, 1, 5]} -{"sent_id": [0, 16, 12, 2, 14, 15]} -{"sent_id": [0, 3, 1, 4, 10, 13]} -{"sent_id": [1, 2, 13, 3, 4, 0]} -{"sent_id": [1, 6, 5, 2, 17, 3]} -{"sent_id": [7, 2, 6, 15, 3, 8]} -{"sent_id": [2, 3, 4, 0, 1, 7]} -{"sent_id": [1, 3, 9, 2, 5, 0]} -{"sent_id": [3, 0, 15, 1, 22, 2]} -{"sent_id": [1, 3, 12, 2, 9, 5]} -{"sent_id": [0, 3, 4, 1, 5, 2]} -{"sent_id": [3, 1, 2, 0, 6, 13]} -{"sent_id": [4, 2, 5, 0, 13, 8]} -{"sent_id": [6, 3, 4, 9, 23, 1]} -{"sent_id": [1, 2, 5, 6, 0, 3]} -{"sent_id": [1, 3, 6, 0, 14, 7]} -{"sent_id": [1, 4, 6, 5, 2, 10]} -{"sent_id": [4, 3, 15, 0, 2, 1]} -{"sent_id": [1, 2, 5, 4, 0, 7]} -{"sent_id": [3, 1, 2, 6, 0, 5]} -{"sent_id": [1, 0, 2, 5, 3, 4]} -{"sent_id": [0, 5, 1, 4, 6, 14]} -{"sent_id": [1, 5, 4, 0, 7, 2]} -{"sent_id": [3, 1, 4, 12, 2, 0]} -{"sent_id": [1, 0, 2, 3, 13, 14]} -{"sent_id": [0, 2, 10, 4, 3, 1]} -{"sent_id": [4, 1, 7, 5, 2, 0]} -{"sent_id": [1, 5, 2, 0, 4, 6]} -{"sent_id": [3, 13, 2, 0, 14, 1]} -{"sent_id": [3, 7, 4, 10, 11, 0]} -{"sent_id": [4, 5, 3, 11, 1, 0]} -{"sent_id": [3, 11, 12, 0, 4, 2]} -{"sent_id": [4, 11, 15, 2, 10, 6]} -{"sent_id": [2, 8, 0, 14, 1, 3]} -{"sent_id": [1, 2, 10, 9, 0, 8]} -{"sent_id": [1, 2, 7, 3, 0, 4]} -{"sent_id": [1, 2, 0, 6, 3, 5]} -{"sent_id": [1, 2, 6, 4, 7, 0]} -{"sent_id": [1, 12, 0, 7, 3, 2]} -{"sent_id": [1, 2, 6, 0, 14, 5]} -{"sent_id": [3, 7, 2, 6, 5, 4]} -{"sent_id": [3, 1, 16, 0, 11, 2]} -{"sent_id": [2, 0, 1, 5, 3, 6]} -{"sent_id": [1, 4, 3, 11, 2, 7]} -{"sent_id": [1, 2, 5, 0, 8, 13]} -{"sent_id": [1, 6, 2, 0, 3, 10]} -{"sent_id": [3, 1, 2, 0, 12, 8]} -{"sent_id": [1, 6, 0, 7, 3, 12]} -{"sent_id": [0, 16, 5, 1, 7, 13]} -{"sent_id": [10, 1, 3, 4, 2, 0]} -{"sent_id": [1, 3, 4, 2, 0, 8]} -{"sent_id": [9, 13, 11, 3, 1, 2]} -{"sent_id": [1, 2, 3, 8, 0, 6]} -{"sent_id": [3, 0, 1, 10, 2, 5]} -{"sent_id": [1, 10, 3, 2, 5, 4]} -{"sent_id": [11, 2, 3, 0, 5, 4]} -{"sent_id": [1, 0, 2, 3, 8, 9]} -{"sent_id": [1, 11, 2, 0, 6, 3]} -{"sent_id": [0, 3, 1, 2, 6, 7]} -{"sent_id": [6, 5, 4, 2, 1, 3]} -{"sent_id": [2, 1, 5, 0, 4, 3]} -{"sent_id": [5, 2, 1, 0, 4, 3]} -{"sent_id": [2, 9, 6, 1, 0, 7]} -{"sent_id": [0, 2, 20, 8, 5, 14]} -{"sent_id": [2, 1, 4, 3, 7, 6]} -{"sent_id": [1, 0, 2, 3, 4, 16]} -{"sent_id": [3, 9, 1, 2, 4, 0]} -{"sent_id": [4, 11, 1, 2, 7, 0]} -{"sent_id": [3, 11, 4, 13, 9, 5]} -{"sent_id": [3, 12, 13, 0, 6, 4]} -{"sent_id": [1, 2, 5, 3, 16, 15]} -{"sent_id": [7, 0, 1, 8, 2, 5]} -{"sent_id": [3, 1, 5, 6, 4, 2]} -{"sent_id": [3, 4, 6, 2, 12, 5]} -{"sent_id": [1, 2, 3, 6, 11, 8]} -{"sent_id": [3, 2, 0, 12, 10, 1]} -{"sent_id": [5, 11, 2, 10, 0, 1]} -{"sent_id": [0, 4, 2, 9, 1, 8]} -{"sent_id": [5, 1, 6, 12, 7, 8]} -{"sent_id": [4, 2, 5, 3, 0, 1]} -{"sent_id": [0, 2, 6, 1, 9, 3]} -{"sent_id": [7, 3, 0, 4, 2, 1]} -{"sent_id": [1, 12, 2, 10, 6, 13]} -{"sent_id": [2, 4, 14, 6, 3, 5]} -{"sent_id": [1, 4, 2, 8, 3, 5]} -{"sent_id": [1, 2, 3, 10, 4, 6]} -{"sent_id": [3, 4, 0, 12, 1, 5]} -{"sent_id": [0, 1, 4, 3, 5, 6]} -{"sent_id": [1, 0, 13, 4, 3, 7]} -{"sent_id": [3, 2, 0, 10, 4, 7]} -{"sent_id": [4, 1, 2, 6, 3, 0]} -{"sent_id": [2, 3, 4, 1, 0, 11]} -{"sent_id": [1, 0, 2, 13, 11, 8]} -{"sent_id": [1, 5, 2, 6, 4, 13]} -{"sent_id": [1, 5, 4, 10, 0, 8]} -{"sent_id": [2, 7, 3, 6, 16, 1]} -{"sent_id": [3, 0, 15, 2, 1, 12]} -{"sent_id": [0, 1, 8, 7, 2, 14]} -{"sent_id": [2, 1, 3, 9, 4, 8]} -{"sent_id": [2, 1, 15, 3, 10, 4]} -{"sent_id": [8, 9, 1, 3, 6, 5]} -{"sent_id": [0, 2, 1, 16, 12, 11]} -{"sent_id": [0, 1, 2, 16, 10, 15]} -{"sent_id": [1, 3, 2, 14, 4, 8]} -{"sent_id": [1, 2, 0, 12, 4, 8]} -{"sent_id": [1, 11, 2, 13, 14, 3]} -{"sent_id": [0, 3, 2, 1, 8, 16]} -{"sent_id": [2, 0, 1, 4, 3, 6]} -{"sent_id": [4, 5, 0, 13, 10, 8]} -{"sent_id": [1, 3, 6, 2, 12, 13]} -{"sent_id": [3, 0, 1, 2, 9, 4]} -{"sent_id": [3, 1, 12, 0, 2, 4]} -{"sent_id": [1, 0, 2, 4, 7, 9]} -{"sent_id": [5, 1, 3, 4, 13, 12]} -{"sent_id": [2, 8, 1, 4, 7, 13]} -{"sent_id": [6, 5, 0, 1, 3, 2]} -{"sent_id": [7, 8, 3, 1, 12, 17]} -{"sent_id": [1, 14, 0, 15, 10, 13]} -{"sent_id": [2, 3, 11, 0, 4, 1]} -{"sent_id": [1, 2, 3, 10, 0, 4]} -{"sent_id": [3, 2, 9, 4, 6, 0]} -{"sent_id": [1, 2, 0, 3, 9, 4]} -{"sent_id": [0, 1, 3, 7, 4, 8]} -{"sent_id": [3, 5, 1, 2, 6, 4]} -{"sent_id": [0, 1, 8, 9, 11, 7]} -{"sent_id": [9, 8, 19, 15, 2, 1]} -{"sent_id": [1, 3, 2, 0, 5, 13]} -{"sent_id": [1, 4, 3, 2, 0, 6]} -{"sent_id": [2, 1, 5, 6, 4, 14]} -{"sent_id": [0, 4, 12, 1, 2, 13]} -{"sent_id": [3, 4, 6, 5, 9, 10]} -{"sent_id": [1, 4, 12, 0, 3, 8]} -{"sent_id": [1, 4, 8, 10, 2, 9]} -{"sent_id": [1, 3, 2, 5, 15, 4]} -{"sent_id": [0, 15, 4, 1, 3, 2]} -{"sent_id": [4, 2, 8, 5, 3, 10]} -{"sent_id": [2, 13, 8, 1, 7, 6]} -{"sent_id": [8, 9, 12, 11, 13, 0]} -{"sent_id": [1, 2, 8, 3, 6, 12]} -{"sent_id": [1, 2, 3, 7, 6, 5]} -{"sent_id": [6, 5, 2, 4, 3, 17]} -{"sent_id": [3, 6, 2, 1, 8, 5]} -{"sent_id": [2, 0, 1, 3, 5, 6]} -{"sent_id": [7, 0, 2, 10, 1, 4]} -{"sent_id": [12, 2, 1, 4, 3, 8]} -{"sent_id": [2, 1, 5, 14, 6, 8]} -{"sent_id": [2, 9, 5, 4, 6, 14]} -{"sent_id": [1, 10, 4, 2, 5, 0]} -{"sent_id": [1, 0, 2, 3, 6, 7]} -{"sent_id": [3, 4, 2, 1, 6, 7]} -{"sent_id": [4, 0, 10, 1, 9, 6]} -{"sent_id": [0, 3, 6, 5, 4, 2]} -{"sent_id": [1, 2, 7, 9, 10, 0]} -{"sent_id": [0, 8, 2, 1, 4, 5]} -{"sent_id": [8, 3, 9, 2, 1, 10]} -{"sent_id": [1, 0, 2, 3, 6, 9]} -{"sent_id": [4, 2, 3, 1, 11, 6]} -{"sent_id": [1, 2, 0, 3, 13, 7]} -{"sent_id": [1, 2, 4, 0, 10, 3]} -{"sent_id": [1, 8, 0, 2, 6, 7]} -{"sent_id": [0, 6, 5, 2, 1, 7]} -{"sent_id": [0, 2, 15, 3, 14, 10]} -{"sent_id": [0, 4, 2, 9, 8, 3]} -{"sent_id": [1, 2, 6, 0, 3, 20]} -{"sent_id": [4, 1, 0, 2, 3, 13]} -{"sent_id": [1, 4, 0, 3, 2, 8]} -{"sent_id": [1, 6, 5, 9, 8, 2]} -{"sent_id": [3, 6, 5, 10, 0, 2]} -{"sent_id": [1, 3, 8, 2, 4, 11]} -{"sent_id": [1, 10, 0, 2, 14, 12]} -{"sent_id": [11, 2, 6, 0, 12, 17]} -{"sent_id": [3, 11, 0, 1, 16, 4]} -{"sent_id": [0, 4, 6, 5, 1, 9]} -{"sent_id": [1, 3, 5, 4, 2, 0]} -{"sent_id": [4, 3, 5, 2, 10, 1]} -{"sent_id": [1, 4, 3, 2, 13, 9]} -{"sent_id": [7, 8, 13, 0, 9, 11]} -{"sent_id": [1, 5, 4, 2, 6, 0]} -{"sent_id": [3, 2, 8, 0, 9, 1]} -{"sent_id": [6, 5, 4, 8, 15, 11]} -{"sent_id": [1, 3, 0, 8, 2, 10]} -{"sent_id": [2, 0, 9, 1, 6, 17]} -{"sent_id": [2, 4, 3, 0, 5, 6]} -{"sent_id": [3, 1, 2, 6, 8, 10]} -{"sent_id": [1, 4, 3, 2, 7, 8]} -{"sent_id": [2, 3, 0, 1, 8, 5]} -{"sent_id": [0, 1, 3, 8, 9, 18]} -{"sent_id": [4, 2, 6, 10, 0, 5]} -{"sent_id": [16, 9, 0, 12, 1, 17]} -{"sent_id": [3, 11, 13, 2, 5, 8]} -{"sent_id": [1, 3, 4, 0, 2, 15]} -{"sent_id": [1, 2, 3, 4, 5, 7]} -{"sent_id": [1, 0, 9, 3, 2, 10]} -{"sent_id": [1, 4, 6, 0, 8, 12]} -{"sent_id": [2, 11, 3, 7, 4, 8]} -{"sent_id": [1, 6, 2, 3, 0, 4]} -{"sent_id": [3, 4, 5, 9, 7, 6]} -{"sent_id": [3, 2, 13, 14, 4, 0]} -{"sent_id": [1, 8, 3, 2, 0, 7]} -{"sent_id": [1, 3, 2, 6, 8, 7]} -{"sent_id": [2, 3, 1, 4, 5, 11]} -{"sent_id": [5, 15, 14, 4, 1, 12]} -{"sent_id": [1, 10, 0, 2, 14, 6]} -{"sent_id": [1, 3, 2, 6, 7, 0]} -{"sent_id": [1, 2, 4, 10, 0, 5]} -{"sent_id": [4, 1, 2, 0, 5, 7]} -{"sent_id": [9, 10, 5, 8, 17, 18]} -{"sent_id": [0, 10, 16, 2, 5, 11]} -{"sent_id": [5, 4, 6, 12, 2, 9]} -{"sent_id": [0, 2, 3, 1, 4, 5]} -{"sent_id": [3, 4, 8, 0, 1, 2]} -{"sent_id": [2, 1, 4, 3, 8, 14]} -{"sent_id": [12, 1, 8, 2, 7, 0]} -{"sent_id": [1, 3, 2, 9, 10, 13]} -{"sent_id": [3, 8, 1, 10, 9, 5]} -{"sent_id": [3, 1, 0, 14, 4, 20]} -{"sent_id": [3, 8, 1, 4, 12, 2]} -{"sent_id": [1, 3, 5, 0, 2, 8]} -{"sent_id": [1, 3, 2, 4, 7, 8]} -{"sent_id": [5, 19, 4, 2, 6, 3]} -{"sent_id": [3, 11, 10, 1, 5, 8]} -{"sent_id": [9, 3, 0, 4, 8, 1]} -{"sent_id": [1, 6, 4, 16, 2, 9]} -{"sent_id": [1, 2, 4, 7, 5, 0]} -{"sent_id": [1, 2, 5, 4, 3, 0]} -{"sent_id": [3, 9, 10, 0, 2, 1]} -{"sent_id": [3, 14, 2, 1, 6, 5]} -{"sent_id": [1, 0, 6, 2, 5, 12]} -{"sent_id": [3, 1, 8, 0, 10, 2]} -{"sent_id": [1, 2, 6, 3, 5, 10]} -{"sent_id": [1, 2, 6, 4, 7, 0]} -{"sent_id": [5, 4, 1, 2, 3, 8]} -{"sent_id": [2, 3, 1, 4, 9, 8]} -{"sent_id": [2, 10, 7, 1, 3, 0]} -{"sent_id": [11, 4, 6, 1, 3, 7]} -{"sent_id": [4, 13, 3, 5, 10, 8]} -{"sent_id": [0, 5, 9, 1, 2, 3]} -{"sent_id": [3, 1, 7, 0, 2, 11]} -{"sent_id": [1, 2, 15, 5, 0, 4]} -{"sent_id": [1, 2, 5, 3, 0, 4]} -{"sent_id": [1, 2, 8, 7, 12, 0]} -{"sent_id": [2, 3, 0, 1, 4, 5]} -{"sent_id": [0, 2, 1, 20, 14, 7]} -{"sent_id": [4, 2, 0, 1, 6, 5]} -{"sent_id": [2, 3, 0, 5, 6, 1]} -{"sent_id": [1, 3, 2, 4, 5, 11]} -{"sent_id": [1, 4, 3, 5, 0, 8]} -{"sent_id": [2, 1, 5, 6, 0, 8]} -{"sent_id": [5, 2, 8, 1, 9, 7]} -{"sent_id": [4, 0, 1, 2, 3, 14]} -{"sent_id": [0, 5, 2, 7, 3, 8]} -{"sent_id": [0, 1, 5, 3, 6, 2]} -{"sent_id": [3, 12, 14, 7, 4, 11]} -{"sent_id": [1, 9, 2, 10, 3, 5]} -{"sent_id": [1, 7, 4, 13, 8, 14]} -{"sent_id": [1, 2, 3, 6, 7, 0]} -{"sent_id": [3, 5, 1, 2, 4, 9]} -{"sent_id": [1, 5, 11, 0, 7, 2]} -{"sent_id": [1, 2, 5, 6, 0, 3]} -{"sent_id": [3, 4, 0, 1, 8, 9]} -{"sent_id": [4, 2, 5, 8, 6, 3]} -{"sent_id": [1, 2, 5, 11, 6, 0]} -{"sent_id": [1, 10, 2, 4, 7, 3]} -{"sent_id": [8, 5, 11, 2, 3, 4]} -{"sent_id": [3, 4, 2, 1, 5, 10]} -{"sent_id": [4, 6, 2, 1, 3, 0]} -{"sent_id": [9, 11, 10, 15, 12, 6]} -{"sent_id": [1, 7, 6, 2, 5, 0]} -{"sent_id": [1, 7, 3, 4, 9, 2]} -{"sent_id": [1, 3, 2, 4, 6, 8]} -{"sent_id": [2, 3, 8, 5, 1, 4]} -{"sent_id": [0, 2, 6, 5, 7, 4]} -{"sent_id": [4, 1, 5, 0, 18, 20]} -{"sent_id": [2, 0, 3, 1, 5, 6]} -{"sent_id": [3, 2, 4, 0, 12, 1]} -{"sent_id": [4, 3, 1, 0, 2, 14]} -{"sent_id": [0, 3, 2, 6, 1, 7]} -{"sent_id": [0, 11, 7, 5, 18, 8]} -{"sent_id": [0, 1, 2, 3, 15, 12]} -{"sent_id": [2, 1, 5, 3, 0, 6]} -{"sent_id": [1, 14, 8, 0, 2, 6]} -{"sent_id": [7, 15, 18, 8, 1, 2]} -{"sent_id": [17, 3, 10, 1, 0, 16]} -{"sent_id": [1, 0, 2, 9, 13, 3]} -{"sent_id": [3, 10, 4, 1, 12, 5]} -{"sent_id": [1, 3, 0, 4, 5, 10]} -{"sent_id": [1, 8, 10, 2, 9, 7]} -{"sent_id": [3, 4, 5, 2, 0, 1]} -{"sent_id": [17, 8, 5, 4, 1, 3]} -{"sent_id": [3, 1, 14, 0, 4, 2]} -{"sent_id": [1, 2, 5, 7, 6, 0]} -{"sent_id": [1, 12, 2, 0, 13, 4]} -{"sent_id": [5, 6, 2, 7, 14, 4]} -{"sent_id": [1, 6, 0, 9, 10, 5]} -{"sent_id": [3, 2, 1, 0, 14, 6]} -{"sent_id": [3, 8, 12, 2, 1, 6]} -{"sent_id": [1, 4, 5, 3, 2, 7]} -{"sent_id": [17, 3, 11, 18, 12, 1]} -{"sent_id": [1, 0, 2, 3, 4, 11]} -{"sent_id": [0, 10, 15, 17, 18, 1]} -{"sent_id": [4, 2, 1, 0, 22, 3]} -{"sent_id": [4, 6, 1, 23, 15, 0]} -{"sent_id": [0, 9, 1, 3, 2, 5]} -{"sent_id": [2, 0, 11, 1, 14, 3]} -{"sent_id": [3, 13, 0, 4, 1, 7]} -{"sent_id": [4, 8, 14, 5, 12, 6]} -{"sent_id": [1, 3, 0, 5, 7, 4]} -{"sent_id": [2, 6, 7, 5, 10, 1]} -{"sent_id": [4, 3, 5, 9, 14, 10]} -{"sent_id": [5, 22, 12, 7, 14, 0]} -{"sent_id": [1, 2, 7, 4, 3, 15]} -{"sent_id": [3, 2, 8, 0, 1, 5]} -{"sent_id": [0, 5, 6, 4, 8, 7]} -{"sent_id": [4, 1, 2, 0, 19, 3]} -{"sent_id": [4, 5, 8, 6, 9, 16]} -{"sent_id": [2, 1, 0, 3, 4, 5]} -{"sent_id": [1, 2, 4, 8, 5, 6]} -{"sent_id": [3, 2, 1, 0, 10, 4]} -{"sent_id": [1, 2, 3, 7, 5, 0]} -{"sent_id": [14, 1, 29, 18, 9, 0]} -{"sent_id": [1, 2, 16, 3, 5, 10]} -{"sent_id": [4, 5, 6, 8, 14, 7]} -{"sent_id": [0, 4, 6, 8, 1, 14]} -{"sent_id": [10, 1, 3, 0, 11, 4]} -{"sent_id": [2, 1, 3, 0, 6, 4]} -{"sent_id": [1, 2, 5, 0, 4, 3]} -{"sent_id": [3, 1, 4, 0, 10, 5]} -{"sent_id": [3, 13, 4, 1, 12, 5]} -{"sent_id": [1, 5, 0, 7, 20, 12]} -{"sent_id": [7, 13, 3, 1, 8, 4]} -{"sent_id": [6, 2, 3, 4, 1, 18]} -{"sent_id": [3, 2, 1, 5, 15, 0]} -{"sent_id": [0, 1, 5, 10, 11, 4]} -{"sent_id": [5, 4, 2, 10, 3, 1]} -{"sent_id": [1, 14, 16, 8, 2, 9]} -{"sent_id": [2, 0, 3, 8, 1, 12]} -{"sent_id": [9, 4, 1, 8, 0, 2]} -{"sent_id": [10, 0, 11, 2, 1, 3]} -{"sent_id": [3, 1, 11, 4, 9, 5]} -{"sent_id": [3, 2, 1, 0, 5, 9]} -{"sent_id": [5, 11, 6, 2, 3, 1]} -{"sent_id": [0, 9, 2, 10, 1, 5]} -{"sent_id": [3, 2, 15, 4, 1, 11]} -{"sent_id": [6, 3, 0, 1, 5, 7]} -{"sent_id": [3, 1, 9, 7, 0, 2]} -{"sent_id": [2, 3, 4, 0, 5, 9]} -{"sent_id": [1, 5, 9, 7, 0, 2]} -{"sent_id": [1, 2, 0, 5, 3, 7]} -{"sent_id": [1, 2, 5, 8, 4, 0]} -{"sent_id": [0, 5, 4, 16, 1, 7]} -{"sent_id": [1, 7, 3, 2, 8, 6]} -{"sent_id": [4, 3, 9, 15, 8, 0]} -{"sent_id": [2, 5, 4, 7, 8, 1]} -{"sent_id": [1, 3, 2, 11, 9, 4]} -{"sent_id": [2, 1, 0, 3, 7, 4]} -{"sent_id": [0, 6, 1, 2, 3, 8]} -{"sent_id": [3, 2, 4, 0, 1, 8]} -{"sent_id": [10, 0, 4, 2, 8, 1]} -{"sent_id": [3, 0, 4, 5, 1, 2]} -{"sent_id": [12, 2, 3, 0, 4, 6]} -{"sent_id": [3, 12, 2, 1, 4, 11]} -{"sent_id": [0, 13, 2, 8, 3, 12]} -{"sent_id": [0, 15, 5, 2, 1, 11]} -{"sent_id": [11, 4, 12, 1, 2, 0]} -{"sent_id": [1, 3, 13, 10, 11, 0]} -{"sent_id": [5, 1, 4, 0, 2, 3]} -{"sent_id": [1, 18, 3, 2, 13, 12]} -{"sent_id": [0, 1, 7, 13, 4, 3]} -{"sent_id": [1, 4, 11, 8, 5, 0]} -{"sent_id": [1, 5, 0, 6, 9, 10]} -{"sent_id": [3, 2, 4, 10, 6, 7]} -{"sent_id": [7, 1, 8, 3, 11, 4]} -{"sent_id": [1, 4, 2, 3, 5, 13]} -{"sent_id": [3, 1, 6, 2, 10, 11]} -{"sent_id": [8, 2, 3, 5, 1, 0]} -{"sent_id": [12, 3, 1, 0, 2, 6]} -{"sent_id": [2, 4, 10, 1, 6, 15]} -{"sent_id": [1, 6, 2, 7, 5, 3]} -{"sent_id": [1, 2, 10, 9, 15, 3]} -{"sent_id": [3, 10, 1, 9, 2, 0]} -{"sent_id": [1, 11, 5, 2, 0, 3]} -{"sent_id": [1, 3, 7, 4, 5, 2]} -{"sent_id": [1, 2, 4, 11, 0, 7]} -{"sent_id": [2, 0, 1, 5, 3, 4]} -{"sent_id": [3, 11, 12, 5, 7, 4]} -{"sent_id": [14, 0, 15, 4, 1, 2]} -{"sent_id": [3, 1, 4, 5, 7, 8]} -{"sent_id": [2, 4, 3, 1, 7, 0]} -{"sent_id": [4, 2, 5, 3, 1, 8]} -{"sent_id": [2, 12, 13, 7, 1, 14]} -{"sent_id": [1, 3, 2, 0, 4, 14]} -{"sent_id": [0, 6, 2, 1, 3, 4]} -{"sent_id": [1, 3, 2, 6, 5, 0]} -{"sent_id": [4, 3, 5, 1, 6, 9]} -{"sent_id": [3, 0, 2, 5, 12, 4]} -{"sent_id": [4, 15, 5, 2, 1, 7]} -{"sent_id": [3, 4, 2, 0, 5, 1]} -{"sent_id": [1, 3, 14, 2, 5, 6]} -{"sent_id": [1, 2, 0, 11, 9, 3]} -{"sent_id": [5, 4, 3, 2, 6, 9]} -{"sent_id": [1, 0, 2, 6, 7, 3]} -{"sent_id": [10, 11, 3, 0, 2, 1]} -{"sent_id": [1, 4, 3, 2, 11, 0]} -{"sent_id": [1, 2, 4, 9, 0, 3]} -{"sent_id": [9, 0, 1, 7, 10, 2]} -{"sent_id": [2, 1, 0, 6, 7, 5]} -{"sent_id": [3, 1, 2, 15, 10, 4]} -{"sent_id": [0, 2, 1, 4, 6, 3]} -{"sent_id": [2, 3, 1, 9, 10, 16]} -{"sent_id": [1, 8, 2, 18, 3, 5]} -{"sent_id": [0, 2, 4, 1, 12, 9]} -{"sent_id": [1, 2, 5, 4, 6, 7]} -{"sent_id": [1, 2, 3, 0, 17, 5]} -{"sent_id": [1, 8, 3, 2, 9, 5]} -{"sent_id": [0, 16, 4, 2, 1, 6]} -{"sent_id": [5, 6, 3, 4, 2, 7]} -{"sent_id": [4, 10, 0, 1, 3, 5]} -{"sent_id": [3, 2, 6, 4, 5, 0]} -{"sent_id": [2, 3, 4, 5, 7, 8]} -{"sent_id": [7, 6, 5, 19, 2, 12]} -{"sent_id": [2, 5, 1, 12, 14, 11]} -{"sent_id": [3, 5, 0, 1, 2, 6]} -{"sent_id": [1, 3, 2, 7, 12, 5]} -{"sent_id": [0, 4, 2, 18, 21, 1]} -{"sent_id": [5, 9, 0, 6, 1, 10]} -{"sent_id": [0, 2, 3, 5, 4, 8]} -{"sent_id": [11, 0, 3, 5, 1, 9]} -{"sent_id": [2, 3, 4, 7, 5, 0]} -{"sent_id": [1, 3, 2, 5, 6, 4]} -{"sent_id": [1, 2, 9, 3, 11, 0]} -{"sent_id": [1, 2, 6, 9, 3, 7]} -{"sent_id": [2, 6, 0, 3, 4, 5]} -{"sent_id": [1, 2, 7, 0, 6, 3]} -{"sent_id": [3, 1, 5, 6, 11, 4]} -{"sent_id": [2, 1, 4, 3, 9, 0]} -{"sent_id": [1, 5, 2, 0, 4, 11]} -{"sent_id": [2, 8, 5, 4, 9, 13]} -{"sent_id": [2, 3, 4, 0, 1, 8]} -{"sent_id": [2, 4, 1, 6, 7, 5]} -{"sent_id": [7, 8, 14, 2, 3, 1]} -{"sent_id": [2, 0, 1, 3, 19, 4]} -{"sent_id": [3, 1, 0, 6, 5, 4]} -{"sent_id": [3, 4, 0, 2, 1, 10]} -{"sent_id": [1, 11, 4, 2, 6, 0]} -{"sent_id": [2, 7, 1, 8, 6, 9]} -{"sent_id": [1, 3, 14, 0, 2, 5]} -{"sent_id": [0, 2, 3, 6, 4, 8]} -{"sent_id": [4, 6, 3, 1, 0, 2]} -{"sent_id": [0, 1, 4, 3, 2]} -{"sent_id": [1, 2, 9, 3, 0, 7]} -{"sent_id": [3, 0, 14, 1, 2, 15]} -{"sent_id": [1, 5, 4, 2, 0, 3]} -{"sent_id": [2, 1, 3, 6, 5, 13]} -{"sent_id": [3, 2, 1, 5, 4, 8]} -{"sent_id": [1, 2, 9, 4, 12, 0]} -{"sent_id": [3, 1, 2, 8, 4, 0]} -{"sent_id": [3, 1, 11, 2, 5, 12]} -{"sent_id": [0, 1, 12, 5, 4, 13]} -{"sent_id": [1, 10, 11, 3, 2, 6]} -{"sent_id": [0, 3, 5, 2, 4, 12]} -{"sent_id": [2, 1, 15, 0, 8, 9]} -{"sent_id": [5, 6, 1, 4, 2, 18]} -{"sent_id": [0, 4, 12, 1, 3, 2]} -{"sent_id": [3, 2, 5, 4, 7, 6]} -{"sent_id": [4, 3, 2, 0, 1, 10]} -{"sent_id": [2, 4, 3, 8, 9, 11]} -{"sent_id": [4, 3, 7, 11, 16, 5]} -{"sent_id": [0, 9, 2, 1, 4, 7]} -{"sent_id": [1, 4, 2, 10, 11, 3]} -{"sent_id": [1, 0, 2, 5, 6, 7]} -{"sent_id": [1, 3, 4, 2, 11, 5]} -{"sent_id": [2, 4, 3, 5, 13, 1]} -{"sent_id": [4, 11, 1, 9, 0, 2]} -{"sent_id": [4, 0, 3, 11, 2, 5]} -{"sent_id": [3, 8, 1, 4, 5, 11]} -{"sent_id": [3, 5, 1, 0, 2, 11]} -{"sent_id": [2, 3, 9, 6, 1, 0]} -{"sent_id": [1, 2, 0, 13, 3, 6]} -{"sent_id": [3, 4, 5, 10, 11, 6]} -{"sent_id": [3, 2, 4, 1, 6, 5]} -{"sent_id": [1, 2, 10, 3, 4, 7]} -{"sent_id": [1, 2, 4, 12, 11, 7]} -{"sent_id": [2, 1, 16, 12, 3, 14]} -{"sent_id": [2, 5, 3, 4, 1, 0]} -{"sent_id": [3, 7, 0, 2, 1, 4]} -{"sent_id": [1, 2, 8, 9, 4, 10]} -{"sent_id": [1, 4, 5, 2, 3, 6]} -{"sent_id": [4, 5, 0, 8, 2, 6]} -{"sent_id": [1, 11, 0, 4, 3, 12]} -{"sent_id": [1, 4, 2, 3, 7, 0]} -{"sent_id": [3, 12, 1, 11, 4, 5]} -{"sent_id": [0, 3, 2, 9, 4, 7]} -{"sent_id": [0, 14, 17, 10, 5, 2]} -{"sent_id": [3, 4, 5, 1, 0, 6]} -{"sent_id": [19, 2, 4, 5, 0, 10]} -{"sent_id": [0, 2, 11, 3, 4, 5]} -{"sent_id": [1, 7, 2, 9, 17, 6]} -{"sent_id": [1, 3, 2, 8, 5, 0]} -{"sent_id": [2, 4, 3, 0, 7, 1]} -{"sent_id": [3, 4, 1, 2, 13, 0]} -{"sent_id": [1, 2, 3, 5, 4, 7]} -{"sent_id": [0, 5, 1, 15, 6, 3]} -{"sent_id": [1, 2, 8, 9, 12, 4]} -{"sent_id": [2, 1, 0, 5, 9, 11]} -{"sent_id": [1, 15, 2, 6, 3, 9]} -{"sent_id": [3, 0, 2, 1, 7, 6]} -{"sent_id": [1, 3, 5, 8, 2, 7]} -{"sent_id": [1, 0, 3, 2, 4, 8]} -{"sent_id": [5, 4, 2, 6, 7, 1]} -{"sent_id": [3, 1, 2, 5, 0, 4]} -{"sent_id": [0, 1, 2, 3, 20, 14]} -{"sent_id": [3, 0, 2, 5, 1, 12]} -{"sent_id": [4, 2, 0, 1, 12, 6]} -{"sent_id": [4, 3, 1, 2, 12, 11]} -{"sent_id": [2, 1, 4, 5, 7, 3]} -{"sent_id": [5, 1, 6, 4, 2, 0]} -{"sent_id": [9, 8, 17, 4, 16, 15]} -{"sent_id": [3, 4, 5, 2, 6, 0]} -{"sent_id": [1, 2, 4, 7, 10, 5]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [4, 2, 1, 10, 3, 7]} -{"sent_id": [0, 2, 5, 12, 6, 1]} -{"sent_id": [3, 2, 1, 11, 9, 10]} -{"sent_id": [3, 2, 15, 1, 16, 4]} -{"sent_id": [1, 2, 0, 4, 8, 9]} -{"sent_id": [1, 2, 3, 7, 0, 5]} -{"sent_id": [3, 0, 1, 2, 6, 7]} -{"sent_id": [1, 2, 13, 4, 6, 0]} -{"sent_id": [3, 4, 0, 8, 18, 15]} -{"sent_id": [0, 2, 5, 1, 4, 3]} -{"sent_id": [3, 4, 1, 2, 14, 15]} -{"sent_id": [2, 4, 6, 1, 3, 0]} -{"sent_id": [3, 4, 12, 0, 5, 10]} -{"sent_id": [4, 1, 2, 6, 0, 5]} -{"sent_id": [2, 13, 1, 3, 4, 5]} -{"sent_id": [3, 1, 10, 2, 4, 8]} -{"sent_id": [3, 0, 1, 2, 6, 4]} -{"sent_id": [3, 0, 13, 2, 10, 4]} -{"sent_id": [1, 3, 10, 8, 7, 2]} -{"sent_id": [4, 0, 1, 22, 2, 3]} -{"sent_id": [0, 3, 1, 6, 2, 8]} -{"sent_id": [1, 8, 2, 11, 9, 0]} -{"sent_id": [1, 4, 0, 5, 7, 6]} -{"sent_id": [1, 3, 4, 2, 6, 8]} -{"sent_id": [3, 0, 1, 13, 2, 4]} -{"sent_id": [3, 1, 4, 2, 6, 15]} -{"sent_id": [1, 2, 3, 0, 6, 5]} -{"sent_id": [4, 0, 5, 14, 3, 1]} -{"sent_id": [3, 1, 2, 0, 7, 10]} -{"sent_id": [3, 4, 11, 1, 0, 2]} -{"sent_id": [1, 2, 3, 13, 6, 0]} -{"sent_id": [3, 2, 1, 7, 4, 0]} -{"sent_id": [0, 1, 2, 5, 13, 3]} -{"sent_id": [3, 14, 1, 0, 6, 4]} -{"sent_id": [1, 2, 5, 6, 3, 0]} -{"sent_id": [3, 1, 8, 7, 2, 0]} -{"sent_id": [0, 6, 3, 4, 1, 2]} -{"sent_id": [0, 4, 2, 18, 3, 5]} -{"sent_id": [3, 5, 6, 4, 7, 0]} -{"sent_id": [2, 1, 3, 16, 11, 0]} -{"sent_id": [1, 2, 3, 4, 12, 13]} -{"sent_id": [1, 8, 3, 9, 2, 0]} -{"sent_id": [0, 1, 2, 5, 8, 9]} -{"sent_id": [0, 2, 4, 3, 1, 7]} -{"sent_id": [1, 2, 5, 4, 8, 7]} -{"sent_id": [1, 0, 3, 9, 5, 2]} -{"sent_id": [1, 2, 8, 5, 6, 7]} -{"sent_id": [1, 8, 9, 0, 5, 2]} -{"sent_id": [1, 2, 3, 7, 8, 5]} -{"sent_id": [2, 11, 5, 6, 1, 16]} -{"sent_id": [3, 4, 10, 7, 11, 8]} -{"sent_id": [0, 1, 5, 6, 2, 9]} -{"sent_id": [1, 0, 9, 2, 12, 4]} -{"sent_id": [6, 9, 8, 7, 2, 3]} -{"sent_id": [0, 5, 1, 11, 12, 3]} -{"sent_id": [5, 1, 7, 2, 0, 3]} -{"sent_id": [4, 8, 0, 5, 1, 2]} -{"sent_id": [12, 3, 0, 2, 1, 20]} -{"sent_id": [2, 6, 1, 15, 22, 4]} -{"sent_id": [3, 4, 1, 5, 6, 2]} -{"sent_id": [5, 18, 13, 4, 6, 16]} -{"sent_id": [2, 3, 0, 14, 5, 1]} -{"sent_id": [3, 4, 2, 10, 9, 7]} -{"sent_id": [6, 8, 1, 10, 7, 11]} -{"sent_id": [1, 5, 2, 4, 6, 11]} -{"sent_id": [3, 1, 2, 4, 6, 8]} -{"sent_id": [3, 1, 10, 11, 2, 12]} -{"sent_id": [0, 3, 6, 1, 2, 4]} -{"sent_id": [1, 5, 6, 9, 2, 10]} -{"sent_id": [1, 0, 3, 4, 7, 2]} -{"sent_id": [1, 2, 17, 5, 10, 12]} -{"sent_id": [1, 3, 4, 2, 17, 14]} -{"sent_id": [2, 3, 6, 5, 4, 14]} -{"sent_id": [1, 2, 6, 0, 7, 3]} -{"sent_id": [2, 14, 1, 0, 5, 4]} -{"sent_id": [1, 2, 4, 11, 3, 0]} -{"sent_id": [1, 2, 7, 8, 0, 14]} -{"sent_id": [0, 2, 14, 3, 4, 6]} -{"sent_id": [13, 6, 1, 7, 5, 8]} -{"sent_id": [0, 2, 1, 4, 3, 8]} -{"sent_id": [3, 2, 4, 1, 0, 11]} -{"sent_id": [0, 1, 6, 5, 20, 11]} -{"sent_id": [1, 5, 4, 2, 3, 8]} -{"sent_id": [2, 10, 0, 4, 3, 5]} -{"sent_id": [5, 0, 4, 9, 2, 1]} -{"sent_id": [1, 2, 0, 9, 5, 7]} -{"sent_id": [12, 2, 4, 3, 1, 6]} -{"sent_id": [4, 5, 6, 3, 9, 2]} -{"sent_id": [2, 1, 6, 5, 12, 3]} -{"sent_id": [1, 3, 4, 9, 2, 12]} -{"sent_id": [3, 1, 5, 2, 4, 6]} -{"sent_id": [1, 3, 2, 4, 0, 7]} -{"sent_id": [4, 2, 1, 3, 8, 0]} -{"sent_id": [1, 2, 4, 5, 3, 0]} -{"sent_id": [2, 3, 0, 4, 1, 9]} -{"sent_id": [1, 3, 5, 2, 10, 11]} -{"sent_id": [3, 2, 4, 0, 8, 9]} -{"sent_id": [2, 4, 3, 6, 7, 5]} -{"sent_id": [0, 1, 4, 3, 7, 2]} -{"sent_id": [1, 2, 0, 7, 8, 4]} -{"sent_id": [2, 3, 1, 6, 7, 8]} -{"sent_id": [0, 2, 10, 4, 9, 12]} -{"sent_id": [1, 2, 0, 5, 3, 4]} -{"sent_id": [1, 2, 13, 9, 14, 4]} -{"sent_id": [3, 1, 2, 9, 8, 19]} -{"sent_id": [1, 3, 4, 8, 2, 10]} -{"sent_id": [18, 1, 9, 7, 2, 11]} -{"sent_id": [1, 0, 3, 5, 2, 4]} -{"sent_id": [2, 4, 16, 15, 0, 3]} -{"sent_id": [1, 4, 3, 11, 2, 8]} -{"sent_id": [1, 6, 0, 4, 11, 2]} -{"sent_id": [1, 2, 0, 12, 4, 18]} -{"sent_id": [1, 10, 0, 2, 9, 12]} -{"sent_id": [1, 8, 9, 7, 2, 13]} -{"sent_id": [1, 2, 4, 8, 5, 10]} -{"sent_id": [1, 3, 2, 13, 15, 0]} -{"sent_id": [5, 9, 6, 7, 4, 2]} -{"sent_id": [0, 10, 3, 4, 11, 5]} -{"sent_id": [9, 17, 5, 7, 2, 6]} -{"sent_id": [3, 9, 1, 8, 2, 16]} -{"sent_id": [1, 23, 2, 0, 7, 3]} -{"sent_id": [4, 8, 10, 7, 13, 9]} -{"sent_id": [0, 4, 10, 3, 1, 11]} -{"sent_id": [3, 1, 7, 8, 2, 0]} -{"sent_id": [6, 2, 0, 1, 9, 4]} -{"sent_id": [3, 4, 1, 2, 5, 7]} -{"sent_id": [3, 4, 0, 14, 1, 5]} -{"sent_id": [0, 2, 3, 1, 7, 11]} -{"sent_id": [0, 2, 3, 4, 16, 1]} -{"sent_id": [9, 1, 3, 2, 0, 5]} -{"sent_id": [5, 4, 0, 11, 10, 2]} -{"sent_id": [0, 1, 4, 6, 2, 8]} -{"sent_id": [1, 8, 2, 0, 18, 3]} -{"sent_id": [13, 0, 1, 10, 6, 2]} -{"sent_id": [11, 0, 1, 4, 2, 5]} -{"sent_id": [2, 1, 3, 5, 10, 0]} -{"sent_id": [3, 10, 11, 19, 12, 2]} -{"sent_id": [3, 1, 11, 2, 0, 8]} -{"sent_id": [5, 1, 11, 7, 2, 4]} -{"sent_id": [3, 1, 0, 2, 10, 9]} -{"sent_id": [0, 1, 4, 2, 11, 5]} -{"sent_id": [2, 4, 3, 5, 6, 16]} -{"sent_id": [1, 4, 2, 5, 6, 13]} -{"sent_id": [3, 10, 1, 4, 8, 0]} -{"sent_id": [2, 3, 1, 4, 21, 20]} -{"sent_id": [5, 8, 9, 7, 2, 6]} -{"sent_id": [3, 2, 4, 11, 6, 1]} -{"sent_id": [0, 11, 2, 1, 10, 4]} -{"sent_id": [1, 3, 2, 7, 4, 10]} -{"sent_id": [3, 2, 4, 9, 5, 0]} -{"sent_id": [3, 4, 11, 1, 0, 8]} -{"sent_id": [2, 1, 4, 3, 0, 15]} -{"sent_id": [2, 1, 3, 5, 15, 7]} -{"sent_id": [1, 2, 9, 8, 0, 14]} -{"sent_id": [2, 5, 3, 0, 7, 6]} -{"sent_id": [4, 1, 3, 2, 11, 0]} -{"sent_id": [0, 11, 3, 5, 4, 16]} -{"sent_id": [3, 2, 0, 1, 6, 8]} -{"sent_id": [1, 3, 2, 0, 8, 12]} -{"sent_id": [3, 11, 17, 9, 15, 0]} -{"sent_id": [3, 4, 5, 6, 0, 11]} -{"sent_id": [0, 6, 3, 4, 1, 17]} -{"sent_id": [3, 9, 0, 1, 2, 16]} -{"sent_id": [1, 3, 2, 0, 6, 4]} -{"sent_id": [0, 6, 4, 1, 10, 5]} -{"sent_id": [10, 8, 9, 20, 0, 19]} -{"sent_id": [0, 11, 12, 2, 1, 6]} -{"sent_id": [3, 7, 11, 2, 8, 10]} -{"sent_id": [3, 1, 0, 6, 2, 7]} -{"sent_id": [2, 0, 1, 6, 4, 9]} -{"sent_id": [1, 0, 4, 3, 2, 12]} -{"sent_id": [11, 3, 7, 2, 9, 1]} -{"sent_id": [1, 13, 2, 6, 5, 7]} -{"sent_id": [14, 6, 17, 8, 12, 3]} -{"sent_id": [1, 3, 16, 5, 4, 0]} -{"sent_id": [3, 8, 2, 7, 10, 1]} -{"sent_id": [1, 2, 9, 0, 3, 11]} -{"sent_id": [0, 4, 5, 3, 16, 1]} -{"sent_id": [3, 1, 2, 4, 5, 0]} -{"sent_id": [1, 0, 2, 5, 9, 6]} -{"sent_id": [3, 4, 2, 7, 5, 6]} -{"sent_id": [0, 2, 7, 1, 5, 9]} -{"sent_id": [0, 2, 3, 1, 9, 4]} -{"sent_id": [10, 4, 7, 3, 5, 0]} -{"sent_id": [3, 2, 0, 4, 8, 1]} -{"sent_id": [1, 2, 0, 6, 3, 4]} -{"sent_id": [0, 4, 2, 9, 5, 3]} -{"sent_id": [3, 1, 4, 2, 0, 5]} -{"sent_id": [12, 3, 1, 10, 2, 7]} -{"sent_id": [2, 0, 3, 1, 5, 12]} -{"sent_id": [5, 3, 6, 17, 0, 10]} -{"sent_id": [8, 1, 5, 6, 0, 4]} -{"sent_id": [2, 0, 3, 5, 4, 9]} -{"sent_id": [1, 3, 5, 2, 6, 0]} -{"sent_id": [0, 8, 17, 5, 3, 16]} -{"sent_id": [8, 11, 3, 7, 1, 6]} -{"sent_id": [3, 6, 2, 4, 1, 9]} -{"sent_id": [5, 6, 1, 8, 0, 7]} -{"sent_id": [6, 1, 8, 2, 7, 0]} -{"sent_id": [0, 2, 3, 4, 14, 21]} -{"sent_id": [0, 1, 3, 16, 2, 9]} -{"sent_id": [2, 3, 1, 0, 7, 5]} -{"sent_id": [4, 5, 3, 1, 13, 8]} -{"sent_id": [2, 8, 1, 4, 12, 6]} -{"sent_id": [0, 3, 10, 2, 1, 9]} -{"sent_id": [3, 5, 11, 0, 2, 1]} -{"sent_id": [1, 3, 4, 0, 5, 12]} -{"sent_id": [0, 4, 5, 1, 11, 2]} -{"sent_id": [1, 3, 4, 2, 5, 6]} -{"sent_id": [1, 5, 3, 6, 2, 4]} -{"sent_id": [3, 7, 8, 4, 6, 17]} -{"sent_id": [1, 2, 13, 8, 5, 4]} -{"sent_id": [1, 10, 2, 11, 9, 12]} -{"sent_id": [1, 10, 2, 0, 7, 14]} -{"sent_id": [9, 3, 1, 5, 12, 2]} -{"sent_id": [3, 10, 2, 1, 4, 11]} -{"sent_id": [1, 2, 6, 0, 3, 9]} -{"sent_id": [0, 6, 1, 4, 2, 5]} -{"sent_id": [3, 2, 0, 5, 8, 4]} -{"sent_id": [1, 17, 4, 2, 8, 0]} -{"sent_id": [4, 0, 1, 3, 10, 5]} -{"sent_id": [1, 3, 16, 0, 2, 4]} -{"sent_id": [2, 3, 1, 14, 10, 11]} -{"sent_id": [1, 5, 2, 0, 4, 3]} -{"sent_id": [1, 2, 3, 0, 5, 13]} -{"sent_id": [0, 1, 2, 4, 7, 3]} -{"sent_id": [1, 2, 3, 9, 7, 14]} -{"sent_id": [9, 4, 5, 3, 7, 1]} -{"sent_id": [1, 5, 0, 16, 6, 7]} -{"sent_id": [0, 1, 4, 8, 3, 6]} -{"sent_id": [0, 16, 1, 5, 7, 10]} -{"sent_id": [1, 3, 12, 11, 2, 14]} -{"sent_id": [2, 4, 3, 0, 6, 5]} -{"sent_id": [3, 1, 11, 14, 4, 2]} -{"sent_id": [1, 4, 0, 5, 10, 11]} -{"sent_id": [3, 1, 2, 10, 4, 0]} -{"sent_id": [3, 2, 0, 1, 4, 5]} -{"sent_id": [8, 3, 0, 4, 1, 2]} -{"sent_id": [1, 0, 2, 3, 5, 6]} -{"sent_id": [6, 7, 11, 1, 10, 18]} -{"sent_id": [2, 1, 10, 3, 0, 7]} -{"sent_id": [2, 3, 0, 9, 18, 1]} -{"sent_id": [0, 1, 2, 5, 3, 14]} -{"sent_id": [8, 2, 4, 3, 12, 0]} -{"sent_id": [14, 15, 3, 4, 9, 6]} -{"sent_id": [3, 15, 0, 2, 5, 13]} -{"sent_id": [4, 5, 1, 2, 12, 0]} -{"sent_id": [2, 8, 3, 13, 4, 6]} -{"sent_id": [1, 3, 8, 2, 13, 10]} -{"sent_id": [2, 9, 1, 0, 7, 4]} -{"sent_id": [4, 2, 3, 1, 0, 5]} -{"sent_id": [0, 4, 1, 3, 11, 6]} -{"sent_id": [2, 3, 1, 0, 4, 6]} -{"sent_id": [0, 1, 2, 7, 4, 8]} -{"sent_id": [5, 6, 4, 0, 2, 1]} -{"sent_id": [1, 0, 3, 2, 6, 9]} -{"sent_id": [4, 3, 1, 9, 2, 6]} -{"sent_id": [3, 4, 5, 2, 1, 0]} -{"sent_id": [5, 0, 15, 10, 9, 4]} -{"sent_id": [1, 0, 2, 4, 3, 5]} -{"sent_id": [2, 15, 3, 16, 5, 4]} -{"sent_id": [3, 1, 5, 4, 6, 0]} -{"sent_id": [1, 5, 2, 3, 13, 6]} -{"sent_id": [1, 0, 2, 3, 8, 5]} -{"sent_id": [3, 12, 0, 6, 11, 2]} -{"sent_id": [0, 4, 1, 6, 3, 5]} -{"sent_id": [5, 4, 3, 9, 2, 7]} -{"sent_id": [2, 1, 4, 5, 6, 7]} -{"sent_id": [1, 2, 8, 4, 3, 0]} -{"sent_id": [1, 2, 3, 4, 0, 6]} -{"sent_id": [5, 1, 6, 2, 4, 3]} -{"sent_id": [0, 2, 1, 5, 3, 4]} -{"sent_id": [3, 1, 2, 12, 0, 4]} -{"sent_id": [10, 7, 4, 5, 6, 12]} -{"sent_id": [3, 4, 8, 9, 1, 0]} -{"sent_id": [3, 2, 1, 7, 4, 8]} -{"sent_id": [1, 9, 7, 2, 6, 0]} -{"sent_id": [1, 0, 5, 7, 8, 4]} -{"sent_id": [0, 9, 7, 13, 1, 10]} -{"sent_id": [4, 19, 3, 0, 5, 2]} -{"sent_id": [1, 4, 0, 5, 2, 3]} -{"sent_id": [1, 2, 4, 3, 9, 6]} -{"sent_id": [1, 2, 6, 12, 7, 8]} -{"sent_id": [1, 4, 7, 0, 20, 13]} -{"sent_id": [4, 3, 1, 2, 13, 0]} -{"sent_id": [2, 1, 4, 3, 0, 6]} -{"sent_id": [12, 2, 3, 1, 7, 0]} -{"sent_id": [1, 9, 10, 11, 4, 3]} -{"sent_id": [3, 6, 1, 2, 5, 10]} -{"sent_id": [2, 5, 4, 6, 10, 8]} -{"sent_id": [2, 1, 12, 11, 9, 6]} -{"sent_id": [0, 4, 2, 1, 11, 12]} -{"sent_id": [0, 3, 1, 11, 2, 12]} -{"sent_id": [1, 6, 5, 2, 18, 19]} -{"sent_id": [2, 3, 4, 0, 6, 5]} -{"sent_id": [3, 1, 14, 2, 18, 11]} -{"sent_id": [3, 1, 2, 4, 9, 7]} -{"sent_id": [8, 3, 5, 10, 6, 11]} -{"sent_id": [3, 8, 11, 10, 5, 14]} -{"sent_id": [7, 0, 9, 4, 6, 2]} -{"sent_id": [4, 6, 0, 16, 11, 2]} -{"sent_id": [1, 2, 5, 0, 9, 10]} -{"sent_id": [0, 6, 2, 3, 5, 1]} -{"sent_id": [1, 5, 0, 4, 9, 2]} -{"sent_id": [5, 3, 4, 2, 1, 0]} -{"sent_id": [1, 2, 4, 16, 14, 15]} -{"sent_id": [14, 2, 0, 13, 9, 8]} -{"sent_id": [1, 5, 3, 11, 2, 4]} -{"sent_id": [6, 1, 0, 2, 4, 10]} -{"sent_id": [2, 1, 3, 8, 11, 4]} -{"sent_id": [3, 0, 2, 1, 5, 4]} -{"sent_id": [2, 1, 3, 8, 7, 6]} -{"sent_id": [3, 1, 0, 4, 2, 5]} -{"sent_id": [3, 4, 0, 1, 10, 11]} -{"sent_id": [1, 2, 3, 14, 12, 8]} -{"sent_id": [2, 10, 3, 0, 11, 4]} -{"sent_id": [5, 14, 8, 7, 0, 15]} -{"sent_id": [1, 2, 0, 3, 9, 8]} -{"sent_id": [5, 8, 3, 9, 11, 6]} -{"sent_id": [4, 0, 3, 5, 1, 9]} -{"sent_id": [1, 3, 10, 0, 8, 5]} -{"sent_id": [1, 0, 6, 2, 9, 5]} -{"sent_id": [0, 9, 4, 5, 8, 1]} -{"sent_id": [2, 1, 0, 5, 4, 6]} -{"sent_id": [2, 1, 3, 0]} -{"sent_id": [6, 4, 9, 1, 8, 0]} -{"sent_id": [3, 11, 0, 2, 1, 6]} -{"sent_id": [4, 3, 11, 0, 10, 2]} -{"sent_id": [1, 2, 3, 10, 4, 5]} -{"sent_id": [1, 7, 2, 11, 4, 3]} -{"sent_id": [3, 2, 4, 5, 6, 16]} -{"sent_id": [1, 2, 5, 16, 0, 11]} -{"sent_id": [0, 5, 6, 7, 4, 2]} -{"sent_id": [1, 2, 4, 5, 0, 3]} -{"sent_id": [3, 1, 10, 0, 7, 8]} -{"sent_id": [0, 1, 13, 17, 7, 4]} -{"sent_id": [1, 0, 2, 3, 6, 4]} -{"sent_id": [1, 2, 0, 8, 6, 3]} -{"sent_id": [6, 5, 16, 0, 2, 4]} -{"sent_id": [3, 2, 1, 5, 4, 14]} -{"sent_id": [1, 2, 3, 10, 4, 7]} -{"sent_id": [1, 0, 3, 8, 6, 2]} -{"sent_id": [1, 2, 5, 9, 3, 10]} -{"sent_id": [1, 0, 5, 3, 11, 9]} -{"sent_id": [0, 3, 4, 1, 2, 12]} -{"sent_id": [2, 1, 6, 7, 0, 3]} -{"sent_id": [3, 2, 1, 0, 4, 9]} -{"sent_id": [10, 5, 7, 4, 15, 11]} -{"sent_id": [11, 3, 1, 8, 2, 0]} -{"sent_id": [1, 6, 0, 2, 7, 4]} -{"sent_id": [9, 3, 8, 2, 1, 4]} -{"sent_id": [1, 6, 5, 12, 2, 0]} -{"sent_id": [6, 0, 8, 2, 9, 7]} -{"sent_id": [3, 15, 1, 7, 2, 4]} -{"sent_id": [1, 2, 7, 15, 11, 6]} -{"sent_id": [2, 8, 1, 4, 5, 6]} -{"sent_id": [3, 1, 2, 8, 6, 4]} -{"sent_id": [3, 2, 5, 9, 17, 1]} -{"sent_id": [1, 5, 4, 2, 10, 11]} -{"sent_id": [0, 7, 1, 2, 17, 11]} -{"sent_id": [10, 6, 9, 4, 11, 7]} -{"sent_id": [2, 12, 9, 8, 5, 1]} -{"sent_id": [3, 1, 15, 2, 14, 11]} -{"sent_id": [3, 4, 5, 6, 7, 15]} -{"sent_id": [1, 2, 3, 0, 4, 6]} -{"sent_id": [3, 2, 1, 9, 5, 0]} -{"sent_id": [9, 2, 1, 4, 7, 3]} -{"sent_id": [1, 0, 3, 4, 8, 2]} -{"sent_id": [1, 5, 2, 11, 6, 12]} -{"sent_id": [4, 0, 1, 5, 8, 10]} -{"sent_id": [4, 0, 3, 9, 6, 2]} -{"sent_id": [1, 8, 2, 0, 9, 6]} -{"sent_id": [4, 0, 10, 7, 3, 1]} -{"sent_id": [1, 2, 4, 3, 0, 6]} -{"sent_id": [2, 3, 9, 4, 7, 10]} -{"sent_id": [3, 4, 5, 2, 1, 7]} -{"sent_id": [0, 6, 4, 1, 3, 9]} -{"sent_id": [2, 9, 0, 8, 5, 3]} -{"sent_id": [1, 2, 6, 3, 0, 8]} -{"sent_id": [1, 7, 6, 2, 14, 0]} -{"sent_id": [5, 1, 3, 8, 2, 10]} -{"sent_id": [1, 2, 6, 0, 5, 3]} -{"sent_id": [4, 1, 0, 3, 2, 5]} -{"sent_id": [5, 1, 2, 10, 4, 7]} -{"sent_id": [5, 1, 0, 2, 4, 12]} -{"sent_id": [0, 1, 4, 2, 3, 8]} -{"sent_id": [1, 3, 0, 2, 6, 8]} -{"sent_id": [0, 2, 6, 4, 3, 14]} -{"sent_id": [2, 3, 9, 10, 11, 17]} -{"sent_id": [1, 2, 3, 14, 10, 11]} -{"sent_id": [12, 1, 4, 0, 2, 16]} -{"sent_id": [1, 2, 4, 5, 3, 9]} -{"sent_id": [1, 2, 0, 12, 5, 11]} -{"sent_id": [3, 10, 0, 4, 1, 2]} -{"sent_id": [1, 5, 3, 15, 0, 4]} -{"sent_id": [1, 4, 2, 0, 7, 3]} -{"sent_id": [2, 5, 3, 0, 13, 8]} -{"sent_id": [1, 2, 5, 4, 0, 6]} -{"sent_id": [0, 4, 9, 8, 3, 1]} -{"sent_id": [3, 4, 5, 9, 11, 6]} -{"sent_id": [3, 21, 1, 4, 7, 8]} -{"sent_id": [1, 8, 4, 3, 15, 2]} -{"sent_id": [7, 2, 3, 0, 6, 12]} -{"sent_id": [5, 1, 4, 2, 6, 7]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [6, 3, 12, 11, 1, 2]} -{"sent_id": [4, 8, 2, 5, 0, 10]} -{"sent_id": [0, 1, 8, 12, 7, 4]} -{"sent_id": [4, 2, 3, 1, 5, 8]} -{"sent_id": [0, 4, 3, 1, 6, 5]} -{"sent_id": [2, 0, 3, 7, 8, 4]} -{"sent_id": [1, 2, 9, 6, 4, 5]} -{"sent_id": [1, 2, 13, 0, 3, 5]} -{"sent_id": [4, 5, 0, 2, 3, 6]} -{"sent_id": [3, 2, 13, 6, 1, 14]} -{"sent_id": [1, 5, 8, 2, 3, 4]} -{"sent_id": [2, 4, 3, 7, 10, 5]} -{"sent_id": [1, 6, 8, 7, 4, 0]} -{"sent_id": [2, 4, 1, 3, 5, 7]} -{"sent_id": [1, 2, 5, 12, 15, 13]} -{"sent_id": [10, 1, 16, 8, 12, 9]} -{"sent_id": [3, 2, 8, 1, 0, 14]} -{"sent_id": [4, 5, 1, 17, 14, 20]} -{"sent_id": [1, 2, 3, 11, 10, 7]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [0, 2, 3, 1, 6, 14]} -{"sent_id": [3, 1, 0, 10, 14, 2]} -{"sent_id": [2, 4, 5, 3, 7, 0]} -{"sent_id": [4, 0, 2, 1, 10, 6]} -{"sent_id": [0, 17, 4, 1, 15, 6]} -{"sent_id": [2, 1, 8, 13, 9, 20]} -{"sent_id": [4, 9, 3, 0, 1, 5]} -{"sent_id": [2, 4, 1, 12, 0, 5]} -{"sent_id": [4, 1, 0, 3, 2, 8]} -{"sent_id": [1, 2, 3, 9, 4, 7]} -{"sent_id": [14, 2, 1, 6, 0, 5]} -{"sent_id": [0, 3, 5, 16, 1, 4]} -{"sent_id": [3, 4, 2, 5, 1, 12]} -{"sent_id": [4, 2, 1, 12, 0, 7]} -{"sent_id": [9, 8, 7, 0, 3, 4]} -{"sent_id": [3, 1, 0, 12, 2, 4]} -{"sent_id": [7, 0, 9, 14, 15, 17]} -{"sent_id": [1, 4, 2, 9, 0, 8]} -{"sent_id": [0, 1, 14, 4, 3, 13]} -{"sent_id": [13, 12, 8, 15, 16, 0]} -{"sent_id": [1, 0, 6, 9, 11, 2]} -{"sent_id": [2, 1, 4, 3, 0, 5]} -{"sent_id": [2, 1, 3, 8, 4, 6]} -{"sent_id": [1, 3, 2, 4, 8, 5]} -{"sent_id": [0, 1, 7, 2, 6, 15]} -{"sent_id": [4, 1, 5, 13, 2, 6]} -{"sent_id": [3, 4, 5, 0, 2, 1]} -{"sent_id": [5, 0, 18, 10, 3, 2]} -{"sent_id": [9, 8, 5, 10, 1, 17]} -{"sent_id": [2, 0, 18, 19, 3, 4]} -{"sent_id": [0, 1, 2, 4, 3, 14]} -{"sent_id": [1, 4, 2, 3, 5, 8]} -{"sent_id": [3, 0, 13, 1, 10, 12]} -{"sent_id": [4, 3, 15, 2, 1, 5]} -{"sent_id": [1, 2, 3, 16, 5, 17]} -{"sent_id": [2, 10, 11, 9, 6, 8]} -{"sent_id": [13, 2, 16, 15, 1, 3]} -{"sent_id": [1, 3, 6, 0, 2, 5]} -{"sent_id": [0, 14, 1, 15, 2, 3]} -{"sent_id": [3, 4, 0, 2, 5, 11]} -{"sent_id": [1, 0, 3, 5, 2, 7]} -{"sent_id": [4, 5, 0, 1, 6, 11]} -{"sent_id": [0, 1, 4, 5, 14, 10]} -{"sent_id": [0, 9, 3, 1, 8, 7]} -{"sent_id": [1, 2, 7, 11, 3, 10]} -{"sent_id": [1, 5, 7, 6, 2, 14]} -{"sent_id": [1, 2, 13, 15, 8, 0]} -{"sent_id": [1, 2, 0, 8, 9, 5]} -{"sent_id": [1, 13, 2, 10, 11, 14]} -{"sent_id": [1, 0, 4, 3, 2, 10]} -{"sent_id": [4, 0, 11, 1, 2, 8]} -{"sent_id": [2, 1, 5, 7, 6, 9]} -{"sent_id": [1, 4, 2, 3, 0, 11]} -{"sent_id": [1, 2, 14, 5, 6, 3]} -{"sent_id": [1, 2, 16, 0, 11, 12]} -{"sent_id": [0, 4, 3, 5, 7, 18]} -{"sent_id": [1, 4, 3, 2, 9, 5]} -{"sent_id": [1, 3, 2, 14, 15, 6]} -{"sent_id": [1, 5, 13, 0, 11, 7]} -{"sent_id": [14, 0, 5, 2, 6, 3]} -{"sent_id": [4, 2, 1, 3, 0, 9]} -{"sent_id": [0, 1, 6, 7, 2, 15]} -{"sent_id": [0, 7, 20, 21, 6, 16]} -{"sent_id": [1, 2, 5, 0, 7, 4]} -{"sent_id": [5, 4, 0, 1, 2, 3]} -{"sent_id": [8, 0, 7, 2, 1, 4]} -{"sent_id": [2, 1, 12, 3, 4, 0]} -{"sent_id": [4, 0, 2, 1, 3, 13]} -{"sent_id": [1, 13, 5, 7, 8, 2]} -{"sent_id": [0, 1, 2, 8, 9, 3]} -{"sent_id": [16, 0, 7, 5, 18, 10]} -{"sent_id": [2, 1, 0, 5, 4, 3]} -{"sent_id": [13, 0, 5, 3, 1, 2]} -{"sent_id": [3, 4, 2, 5, 18, 0]} -{"sent_id": [1, 4, 2, 3, 6, 8]} -{"sent_id": [1, 0, 2, 3, 5, 6]} -{"sent_id": [2, 3, 4, 5, 8, 0]} -{"sent_id": [1, 4, 5, 6, 7, 3]} -{"sent_id": [1, 0, 2, 6, 9, 16]} -{"sent_id": [5, 1, 2, 13, 12, 4]} -{"sent_id": [3, 1, 2, 0, 11, 5]} -{"sent_id": [5, 8, 3, 11, 6, 1]} -{"sent_id": [10, 4, 6, 3, 5, 2]} -{"sent_id": [8, 1, 3, 2, 4, 9]} -{"sent_id": [1, 5, 4, 10, 0, 6]} -{"sent_id": [0, 1, 5, 4, 8, 6]} -{"sent_id": [3, 4, 1, 9, 8, 0]} -{"sent_id": [3, 12, 11, 1, 0, 6]} -{"sent_id": [1, 3, 4, 13, 2, 0]} -{"sent_id": [0, 2, 1, 8, 14, 10]} -{"sent_id": [4, 6, 5, 7, 10, 9]} -{"sent_id": [1, 2, 10, 6, 7, 5]} -{"sent_id": [0, 5, 1, 10, 4, 3]} -{"sent_id": [2, 7, 1, 5, 4, 12]} -{"sent_id": [4, 6, 5, 0, 1, 7]} -{"sent_id": [0, 1, 6, 4, 11, 2]} -{"sent_id": [5, 6, 1, 2, 3, 0]} -{"sent_id": [0, 4, 1, 3, 9, 2]} -{"sent_id": [1, 3, 2, 0, 4, 7]} -{"sent_id": [3, 1, 2, 9, 17, 10]} -{"sent_id": [1, 2, 14, 16, 4, 0]} -{"sent_id": [4, 8, 0, 2, 1, 3]} -{"sent_id": [2, 3, 0, 1, 4, 7]} -{"sent_id": [1, 7, 3, 2, 8, 9]} -{"sent_id": [1, 2, 0, 4, 3, 6]} -{"sent_id": [1, 15, 7, 12, 0, 4]} -{"sent_id": [3, 4, 1, 2, 0, 9]} -{"sent_id": [4, 0, 8, 1, 5, 14]} -{"sent_id": [3, 12, 0, 1, 10, 2]} -{"sent_id": [1, 2, 10, 5, 7, 0]} -{"sent_id": [1, 9, 3, 2, 8, 0]} -{"sent_id": [1, 2, 0, 5, 10, 15]} -{"sent_id": [4, 3, 12, 11, 13, 15]} -{"sent_id": [4, 3, 5, 1, 10, 2]} -{"sent_id": [3, 1, 0, 2, 5, 7]} -{"sent_id": [2, 3, 1, 5, 6, 14]} -{"sent_id": [1, 2, 5, 8, 3, 11]} -{"sent_id": [5, 7, 6, 10, 4, 11]} -{"sent_id": [3, 4, 5, 6, 1, 0]} -{"sent_id": [3, 8, 1, 2, 0, 4]} -{"sent_id": [0, 2, 1, 9, 11, 3]} -{"sent_id": [0, 7, 2, 4, 1, 5]} -{"sent_id": [2, 3, 1, 5, 7, 0]} -{"sent_id": [1, 0, 2, 7, 4, 13]} -{"sent_id": [1, 3, 4, 14, 2, 5]} -{"sent_id": [1, 9, 3, 2, 11, 0]} -{"sent_id": [2, 1, 6, 4, 5, 0]} -{"sent_id": [2, 1, 13, 12, 8, 14]} -{"sent_id": [1, 2, 10, 13, 11, 9]} -{"sent_id": [4, 3, 5, 1, 15, 8]} -{"sent_id": [1, 13, 2, 3, 6, 0]} -{"sent_id": [4, 0, 1, 3, 9, 2]} -{"sent_id": [4, 3, 2, 13, 14, 1]} -{"sent_id": [1, 3, 0, 4, 10, 2]} -{"sent_id": [0, 1, 3, 4, 2, 6]} -{"sent_id": [1, 5, 0, 6, 8, 7]} -{"sent_id": [3, 1, 7, 0, 2, 9]} -{"sent_id": [1, 7, 5, 4, 0, 2]} -{"sent_id": [1, 0, 2, 15, 3, 7]} -{"sent_id": [2, 1, 3, 13, 0, 11]} -{"sent_id": [1, 3, 0, 7, 2, 9]} -{"sent_id": [0, 1, 5, 4, 3, 2]} -{"sent_id": [4, 1, 3, 7, 2, 0]} -{"sent_id": [2, 1, 8, 0, 6, 17]} -{"sent_id": [1, 2, 5, 12, 0, 8]} -{"sent_id": [5, 0, 3, 8, 2, 1]} -{"sent_id": [5, 15, 16, 6, 3, 17]} -{"sent_id": [0, 1, 2, 3, 4, 5]} -{"sent_id": [6, 1, 20, 12, 13, 14]} -{"sent_id": [3, 2, 1, 13, 0, 4]} -{"sent_id": [2, 3, 1, 10, 4, 13]} -{"sent_id": [0, 4, 2, 3, 5, 1]} -{"sent_id": [1, 9, 2, 5, 8, 0]} -{"sent_id": [4, 3, 1, 0, 12, 2]} -{"sent_id": [2, 1, 3, 17, 18, 0]} -{"sent_id": [8, 9, 2, 3, 1, 10]} -{"sent_id": [0, 11, 9, 1, 15, 2]} -{"sent_id": [1, 0, 4, 11, 3, 8]} -{"sent_id": [0, 7, 1, 5, 8, 3]} -{"sent_id": [5, 19, 6, 18, 1, 7]} -{"sent_id": [6, 1, 11, 0, 7, 10]} -{"sent_id": [3, 4, 9, 2, 1, 0]} -{"sent_id": [5, 2, 7, 14, 3, 4]} -{"sent_id": [1, 2, 7, 9, 4, 5]} -{"sent_id": [3, 4, 0, 11, 1, 2]} -{"sent_id": [1, 2, 6, 3, 0, 4]} -{"sent_id": [2, 4, 10, 5, 11, 15]} -{"sent_id": [15, 1, 2, 4, 0, 5]} -{"sent_id": [2, 0, 4, 1, 3, 9]} -{"sent_id": [1, 6, 0, 13, 9, 2]} -{"sent_id": [8, 7, 2, 3, 1, 12]} -{"sent_id": [1, 3, 2, 4, 13, 7]} -{"sent_id": [6, 2, 12, 7, 1, 15]} -{"sent_id": [0, 3, 1, 2, 17, 8]} -{"sent_id": [3, 1, 0, 15, 4, 16]} -{"sent_id": [3, 4, 12, 1, 0, 11]} -{"sent_id": [1, 2, 7, 9, 0, 3]} -{"sent_id": [12, 4, 2, 3, 0, 1]} -{"sent_id": [3, 2, 14, 15, 17, 1]} -{"sent_id": [2, 1, 3, 4, 0, 8]} -{"sent_id": [2, 5, 6, 4, 1, 14]} -{"sent_id": [1, 0, 2, 4, 8, 5]} -{"sent_id": [0, 4, 1, 3, 5, 7]} -{"sent_id": [0, 1, 2, 5, 7, 3]} -{"sent_id": [0, 2, 1, 5, 3, 13]} -{"sent_id": [0, 12, 15, 3, 1, 2]} -{"sent_id": [1, 6, 8, 2, 0, 7]} -{"sent_id": [3, 6, 2, 9, 1, 0]} -{"sent_id": [3, 2, 6, 1, 8, 0]} -{"sent_id": [13, 1, 3, 0, 2, 11]} -{"sent_id": [3, 0, 1, 4, 2, 6]} -{"sent_id": [2, 1, 4, 0, 5, 3]} -{"sent_id": [1, 4, 12, 8, 5, 2]} -{"sent_id": [3, 13, 4, 1, 0, 6]} -{"sent_id": [1, 5, 2, 0, 3, 16]} -{"sent_id": [3, 11, 0, 2, 14, 1]} -{"sent_id": [2, 0, 6, 4, 9, 1]} -{"sent_id": [0, 3, 1, 9, 4, 2]} -{"sent_id": [1, 6, 2, 4, 7, 5]} -{"sent_id": [4, 3, 11, 8, 14, 6]} -{"sent_id": [1, 5, 2, 6, 3, 4]} -{"sent_id": [2, 9, 1, 15, 5, 8]} -{"sent_id": [2, 3, 11, 0, 1, 8]} -{"sent_id": [3, 6, 10, 4, 0, 7]} -{"sent_id": [5, 6, 2, 1, 8, 0]} -{"sent_id": [2, 1, 3, 5, 0, 4]} -{"sent_id": [6, 17, 18, 7, 8, 3]} -{"sent_id": [2, 1, 5, 3, 12, 0]} -{"sent_id": [3, 4, 0, 1, 17, 2]} -{"sent_id": [1, 3, 5, 6, 2, 7]} -{"sent_id": [2, 6, 1, 3, 5, 0]} -{"sent_id": [1, 4, 2, 11, 3, 10]} -{"sent_id": [1, 3, 8, 7, 5, 0]} -{"sent_id": [1, 4, 16, 15, 3, 0]} -{"sent_id": [1, 5, 6, 4, 10, 11]} -{"sent_id": [4, 0, 1, 7, 3, 2]} -{"sent_id": [1, 3, 4, 5, 11, 2]} -{"sent_id": [2, 1, 6, 0, 3, 12]} -{"sent_id": [3, 1, 0, 9, 11, 2]} -{"sent_id": [2, 3, 0, 4, 5, 10]} -{"sent_id": [2, 1, 8, 7, 9, 0]} -{"sent_id": [1, 2, 3, 4, 5, 0]} -{"sent_id": [0, 4, 3, 1, 9, 2]} -{"sent_id": [1, 2, 3, 0, 11, 7]} -{"sent_id": [0, 1, 9, 2, 7, 11]} -{"sent_id": [1, 6, 2, 4, 3, 5]} -{"sent_id": [1, 4, 0, 5, 7, 2]} -{"sent_id": [0, 1, 5, 4, 2, 8]} -{"sent_id": [9, 4, 5, 3, 2, 6]} -{"sent_id": [3, 4, 7, 0, 6, 1]} -{"sent_id": [3, 0, 9, 1, 5, 2]} -{"sent_id": [1, 2, 4, 6, 5, 0]} -{"sent_id": [3, 0, 11, 4, 13, 12]} -{"sent_id": [2, 0, 14, 5, 1, 4]} -{"sent_id": [3, 4, 8, 12, 7, 5]} -{"sent_id": [2, 10, 9, 11, 3, 14]} -{"sent_id": [0, 18, 1, 2, 3, 19]} -{"sent_id": [0, 6, 1, 4, 5, 7]} -{"sent_id": [1, 0, 2, 6, 4, 10]} -{"sent_id": [3, 0, 2, 6, 11, 7]} -{"sent_id": [5, 1, 8, 0, 4, 6]} -{"sent_id": [0, 1, 3, 4, 7, 8]} -{"sent_id": [2, 1, 6, 3, 0, 4]} -{"sent_id": [1, 2, 10, 0, 17, 13]} -{"sent_id": [3, 11, 2, 1, 4, 10]} -{"sent_id": [5, 3, 7, 0, 4, 6]} -{"sent_id": [1, 6, 0, 11, 2, 3]} -{"sent_id": [6, 2, 0, 12, 4, 3]} -{"sent_id": [5, 6, 1, 8, 2, 16]} -{"sent_id": [3, 4, 5, 1, 0, 14]} -{"sent_id": [1, 5, 8, 2, 7, 0]} -{"sent_id": [1, 2, 11, 3, 9, 4]} -{"sent_id": [3, 1, 5, 2, 4, 10]} -{"sent_id": [1, 3, 7, 2, 0, 4]} -{"sent_id": [1, 2, 0, 8, 4, 3]} -{"sent_id": [2, 3, 9, 1, 7, 0]} -{"sent_id": [3, 2, 0, 1, 13, 9]} -{"sent_id": [3, 4, 8, 2, 0, 1]} -{"sent_id": [2, 3, 4, 5, 15, 22]} -{"sent_id": [2, 1, 13, 3, 5, 4]} -{"sent_id": [1, 0, 2, 8, 4, 3]} -{"sent_id": [3, 4, 0, 1, 2, 6]} -{"sent_id": [4, 5, 1, 2, 8, 6]} -{"sent_id": [0, 1, 4, 3, 10, 2]} -{"sent_id": [2, 1, 5, 12, 3, 0]} -{"sent_id": [2, 1, 3, 7, 5, 6]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [1, 2, 3, 14, 0, 13]} -{"sent_id": [1, 5, 6, 2, 3, 15]} -{"sent_id": [1, 2, 9, 3, 7, 5]} -{"sent_id": [9, 3, 2, 1, 4, 0]} -{"sent_id": [3, 1, 2, 10, 4, 5]} -{"sent_id": [0, 3, 4, 18, 6, 1]} -{"sent_id": [3, 4, 0, 17, 2, 1]} -{"sent_id": [3, 2, 0, 1, 10, 11]} -{"sent_id": [2, 0, 3, 12, 5, 1]} -{"sent_id": [0, 5, 1, 3, 15, 6]} -{"sent_id": [2, 9, 8, 1, 6, 5]} -{"sent_id": [3, 1, 4, 2, 11, 5]} -{"sent_id": [2, 1, 3, 6, 5, 0]} -{"sent_id": [2, 3, 8, 1, 0, 10]} -{"sent_id": [4, 0, 3, 8, 6, 2]} -{"sent_id": [4, 1, 0, 2, 14, 6]} -{"sent_id": [11, 0, 2, 12, 1, 9]} -{"sent_id": [5, 4, 9, 6, 0, 8]} -{"sent_id": [2, 3, 11, 4, 0, 1]} -{"sent_id": [5, 1, 3, 2, 11, 0]} -{"sent_id": [4, 0, 9, 2, 5, 1]} -{"sent_id": [7, 8, 1, 5, 4, 3]} -{"sent_id": [2, 3, 4, 1, 5, 11]} -{"sent_id": [1, 2, 3, 5, 6, 10]} -{"sent_id": [3, 2, 4, 10, 8, 11]} -{"sent_id": [1, 17, 2, 3, 15, 6]} -{"sent_id": [2, 1, 0, 4, 12, 11]} -{"sent_id": [1, 2, 4, 7, 9, 10]} -{"sent_id": [2, 17, 3, 7, 8, 9]} -{"sent_id": [3, 5, 4, 1, 12, 14]} -{"sent_id": [3, 1, 0, 4, 6, 7]} -{"sent_id": [5, 1, 6, 4, 7, 0]} -{"sent_id": [12, 9, 10, 5, 11, 14]} -{"sent_id": [1, 3, 0, 2, 9, 10]} -{"sent_id": [5, 16, 4, 8, 9, 15]} -{"sent_id": [3, 6, 1, 0, 7, 2]} -{"sent_id": [5, 16, 1, 3, 4, 7]} -{"sent_id": [2, 3, 4, 11, 5, 16]} -{"sent_id": [6, 1, 2, 3, 7, 4]} -{"sent_id": [1, 2, 0, 7, 11, 4]} -{"sent_id": [1, 2, 3, 4, 5, 13]} -{"sent_id": [1, 4, 2, 3, 6, 0]} -{"sent_id": [3, 0, 4, 2, 13, 7]} -{"sent_id": [0, 2, 5, 4, 1, 3]} -{"sent_id": [3, 4, 6, 12, 10, 15]} -{"sent_id": [16, 0, 4, 3, 2, 1]} -{"sent_id": [2, 3, 7, 5, 19, 0]} -{"sent_id": [7, 15, 5, 9, 10, 1]} -{"sent_id": [4, 2, 1, 9, 0, 3]} -{"sent_id": [4, 1, 3, 21, 6, 0]} -{"sent_id": [3, 5, 1, 6, 7, 0]} -{"sent_id": [1, 4, 0, 3, 10, 8]} -{"sent_id": [2, 0, 4, 5, 11, 1]} -{"sent_id": [0, 1, 5, 2, 16, 3]} -{"sent_id": [0, 1, 7, 13, 9, 3]} -{"sent_id": [9, 10, 1, 3, 2, 6]} -{"sent_id": [3, 1, 2, 0, 4, 10]} -{"sent_id": [3, 1, 11, 0, 2, 7]} -{"sent_id": [1, 0, 6, 2, 5, 9]} -{"sent_id": [20, 18, 16, 7, 3, 8]} -{"sent_id": [0, 2, 3, 8, 1, 5]} -{"sent_id": [3, 1, 2, 6, 9, 0]} -{"sent_id": [2, 12, 10, 1, 0, 11]} -{"sent_id": [0, 2, 1, 11, 3, 17]} -{"sent_id": [0, 4, 5, 11, 8, 9]} -{"sent_id": [5, 9, 12, 4, 13, 1]} -{"sent_id": [1, 2, 4, 3, 9, 6]} -{"sent_id": [1, 9, 2, 4, 5, 3]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [1, 6, 7, 8, 9, 10]} -{"sent_id": [2, 1, 5, 8, 6, 7]} -{"sent_id": [2, 1, 6, 3, 5, 10]} -{"sent_id": [1, 2, 5, 0, 11, 18]} -{"sent_id": [5, 1, 2, 0, 9, 6]} -{"sent_id": [4, 1, 3, 0, 8, 6]} -{"sent_id": [2, 1, 4, 5, 3, 8]} -{"sent_id": [2, 1, 6, 14, 15, 16]} -{"sent_id": [3, 5, 2, 0, 1, 11]} -{"sent_id": [1, 0, 3, 2, 10, 11]} -{"sent_id": [5, 3, 7, 9, 10, 1]} -{"sent_id": [5, 11, 6, 2, 3, 0]} -{"sent_id": [4, 0, 2, 9, 1, 10]} -{"sent_id": [3, 1, 12, 10, 11, 13]} -{"sent_id": [0, 5, 6, 3, 10, 4]} -{"sent_id": [3, 2, 1, 0, 8, 6]} -{"sent_id": [1, 4, 2, 5, 6, 9]} -{"sent_id": [4, 1, 2, 11, 3, 14]} -{"sent_id": [0, 3, 15, 16, 4, 1]} -{"sent_id": [4, 13, 2, 5, 6, 3]} -{"sent_id": [10, 3, 0, 13, 1, 4]} -{"sent_id": [3, 1, 2, 8, 0, 15]} -{"sent_id": [0, 5, 4, 3, 1, 6]} -{"sent_id": [14, 0, 23, 6, 2, 12]} -{"sent_id": [12, 17, 6, 7, 8, 9]} -{"sent_id": [1, 2, 6, 10, 9, 0]} -{"sent_id": [0, 1, 4, 3, 2, 5]} -{"sent_id": [3, 0, 5, 4, 1, 2]} -{"sent_id": [4, 9, 8, 2, 1, 3]} -{"sent_id": [3, 1, 2, 4, 7, 8]} -{"sent_id": [1, 2, 9, 4, 5, 0]} -{"sent_id": [4, 3, 2, 1, 7, 6]} -{"sent_id": [1, 2, 4, 10, 3, 6]} -{"sent_id": [3, 1, 2, 6, 0, 10]} -{"sent_id": [6, 10, 11, 2, 9, 12]} -{"sent_id": [0, 1, 5, 2, 14, 15]} -{"sent_id": [1, 3, 9, 0, 15, 8]} -{"sent_id": [1, 2, 0, 3, 7, 8]} -{"sent_id": [1, 6, 3, 4, 20, 0]} -{"sent_id": [5, 17, 16, 8, 7, 6]} -{"sent_id": [0, 1, 10, 7, 2, 8]} -{"sent_id": [0, 3, 1, 8, 5, 2]} -{"sent_id": [4, 1, 8, 7, 5, 3]} -{"sent_id": [0, 1, 2, 3, 5, 6]} -{"sent_id": [3, 4, 6, 5, 9, 13]} -{"sent_id": [3, 1, 0, 2, 4, 11]} -{"sent_id": [2, 3, 4, 0, 8, 6]} -{"sent_id": [1, 2, 10, 9, 11, 8]} -{"sent_id": [3, 2, 14, 0, 4, 17]} -{"sent_id": [0, 2, 3, 11, 9, 1]} -{"sent_id": [0, 5, 7, 6, 10, 2]} -{"sent_id": [1, 5, 4, 7, 3, 6]} -{"sent_id": [0, 15, 5, 13, 12, 7]} -{"sent_id": [3, 8, 1, 9, 11, 12]} -{"sent_id": [4, 2, 1, 5, 3, 7]} -{"sent_id": [10, 5, 4, 14, 11, 7]} -{"sent_id": [4, 15, 3, 1, 9, 11]} -{"sent_id": [3, 4, 5, 10, 15, 14]} -{"sent_id": [3, 10, 0, 12, 2, 14]} -{"sent_id": [4, 3, 2, 5, 1, 10]} -{"sent_id": [3, 4, 1, 2, 13, 15]} -{"sent_id": [4, 5, 15, 6, 8, 7]} -{"sent_id": [3, 0, 4, 11, 2, 9]} -{"sent_id": [1, 5, 4, 6, 3, 0]} -{"sent_id": [4, 0, 5, 1, 2, 3]} -{"sent_id": [1, 2, 5, 8, 7, 6]} -{"sent_id": [0, 2, 1, 3, 11, 10]} -{"sent_id": [3, 1, 6, 9, 2, 7]} -{"sent_id": [1, 15, 0, 4, 3, 8]} -{"sent_id": [1, 0, 3, 12, 4, 6]} -{"sent_id": [0, 1, 3, 2, 9, 5]} -{"sent_id": [2, 3, 0, 1, 6, 15]} -{"sent_id": [4, 1, 2, 6, 5, 0]} -{"sent_id": [0, 3, 1, 9, 14, 4]} -{"sent_id": [13, 0, 6, 8, 7, 1]} -{"sent_id": [0, 9, 7, 5, 13, 1]} -{"sent_id": [1, 0, 4, 7, 2, 6]} -{"sent_id": [2, 1, 4, 5, 3, 0]} -{"sent_id": [4, 3, 1, 2, 0, 5]} -{"sent_id": [3, 4, 2, 1, 8, 6]} -{"sent_id": [4, 0, 17, 16, 5, 9]} -{"sent_id": [3, 10, 1, 12, 11, 18]} -{"sent_id": [13, 0, 3, 1, 2, 12]} -{"sent_id": [0, 2, 13, 1, 8, 11]} -{"sent_id": [3, 4, 2, 8, 1, 7]} -{"sent_id": [3, 0, 1, 9, 21, 15]} -{"sent_id": [1, 7, 3, 0, 4, 2]} -{"sent_id": [3, 10, 4, 17, 8, 0]} -{"sent_id": [0, 1, 6, 5, 3, 7]} -{"sent_id": [1, 3, 4, 9, 7, 0]} -{"sent_id": [4, 2, 3, 0, 1, 5]} -{"sent_id": [3, 4, 22, 20, 1, 2]} -{"sent_id": [2, 6, 1, 0, 12, 3]} -{"sent_id": [2, 1, 6, 0, 10, 4]} -{"sent_id": [4, 11, 8, 3, 7, 5]} -{"sent_id": [0, 1, 2, 5, 11, 8]} -{"sent_id": [9, 2, 4, 1, 6, 3]} -{"sent_id": [3, 4, 2, 0, 1, 10]} -{"sent_id": [5, 6, 4, 7, 3, 9]} -{"sent_id": [0, 3, 1, 4, 2, 5]} -{"sent_id": [1, 3, 2, 5, 10, 0]} -{"sent_id": [0, 3, 1, 2, 11, 4]} -{"sent_id": [3, 2, 1, 8, 4, 7]} -{"sent_id": [1, 2, 13, 7, 6, 0]} -{"sent_id": [3, 5, 4, 0, 1, 13]} -{"sent_id": [5, 1, 4, 0, 2, 12]} -{"sent_id": [1, 2, 5, 4, 6, 8]} -{"sent_id": [3, 1, 2, 4, 0, 13]} -{"sent_id": [1, 2, 7, 5, 4, 3]} -{"sent_id": [1, 4, 12, 9, 2, 5]} -{"sent_id": [1, 3, 2, 9, 5, 10]} -{"sent_id": [9, 2, 13, 3, 0, 8]} -{"sent_id": [1, 3, 4, 0, 5, 8]} -{"sent_id": [1, 2, 8, 3, 9, 4]} -{"sent_id": [3, 5, 2, 4, 9, 16]} -{"sent_id": [3, 1, 4, 0, 2, 13]} -{"sent_id": [2, 3, 4, 10, 1, 5]} -{"sent_id": [1, 2, 4, 6, 0, 5]} -{"sent_id": [10, 0, 3, 8, 1, 13]} -{"sent_id": [1, 2, 5, 3, 0, 12]} -{"sent_id": [1, 8, 2, 3, 7, 4]} -{"sent_id": [3, 0, 12, 13, 4, 1]} -{"sent_id": [2, 3, 4, 1, 0, 16]} -{"sent_id": [2, 3, 4, 0, 5, 1]} -{"sent_id": [1, 4, 2, 5, 0, 6]} -{"sent_id": [4, 1, 11, 2, 9, 8]} -{"sent_id": [2, 0, 3, 4, 5, 10]} -{"sent_id": [12, 13, 0, 2, 14, 1]} -{"sent_id": [4, 1, 2, 0, 6, 7]} -{"sent_id": [4, 9, 10, 15, 6, 2]} -{"sent_id": [1, 2, 4, 9, 10, 0]} -{"sent_id": [0, 5, 1, 4, 6, 2]} -{"sent_id": [1, 0, 2, 12, 4, 15]} -{"sent_id": [2, 0, 8, 1, 4, 3]} -{"sent_id": [1, 0, 7, 12, 6, 4]} -{"sent_id": [3, 4, 11, 8, 17, 7]} -{"sent_id": [1, 3, 2, 12, 5, 8]} -{"sent_id": [1, 5, 2, 15, 0, 3]} -{"sent_id": [2, 3, 1, 4, 14, 0]} -{"sent_id": [1, 3, 20, 18, 13, 9]} -{"sent_id": [1, 10, 7, 9, 2, 4]} -{"sent_id": [3, 5, 0, 8, 7, 6]} -{"sent_id": [1, 2, 12, 4, 7, 11]} -{"sent_id": [1, 4, 3, 2, 0, 13]} -{"sent_id": [1, 2, 4, 3, 7, 6]} -{"sent_id": [5, 3, 2, 4, 1, 7]} -{"sent_id": [3, 4, 10, 1, 6, 2]} -{"sent_id": [6, 14, 22, 0, 1, 7]} -{"sent_id": [1, 3, 4, 2, 6, 13]} -{"sent_id": [3, 6, 2, 5, 1, 7]} -{"sent_id": [1, 4, 3, 6, 9, 2]} -{"sent_id": [2, 1, 5, 0, 6, 3]} -{"sent_id": [1, 3, 5, 4, 6, 2]} -{"sent_id": [1, 3, 2, 13, 4, 16]} -{"sent_id": [1, 2, 4, 5, 10, 7]} -{"sent_id": [3, 0, 1, 5, 14, 2]} -{"sent_id": [2, 9, 1, 5, 3, 7]} -{"sent_id": [0, 1, 8, 7, 4, 3]} -{"sent_id": [1, 3, 2, 0, 8, 5]} -{"sent_id": [1, 4, 5, 8, 13, 2]} -{"sent_id": [3, 4, 2, 1, 12, 0]} -{"sent_id": [1, 3, 2, 4, 12, 0]} -{"sent_id": [1, 3, 14, 5, 16, 13]} -{"sent_id": [3, 0, 4, 1, 2, 5]} -{"sent_id": [1, 0, 7, 11, 5, 2]} -{"sent_id": [3, 2, 4, 8, 7, 5]} -{"sent_id": [11, 0, 1, 2, 3, 4]} -{"sent_id": [4, 9, 1, 2, 5, 6]} -{"sent_id": [5, 4, 0, 1, 7, 17]} -{"sent_id": [2, 7, 5, 8, 3, 0]} -{"sent_id": [3, 4, 5, 2, 1, 6]} -{"sent_id": [2, 6, 1, 3, 7, 4]} -{"sent_id": [0, 7, 6, 16, 4, 15]} -{"sent_id": [2, 3, 6, 0, 1, 13]} -{"sent_id": [11, 1, 9, 4, 2, 16]} -{"sent_id": [2, 1, 4, 6, 0, 5]} -{"sent_id": [0, 11, 1, 3, 12, 10]} -{"sent_id": [3, 1, 0, 2, 8, 4]} -{"sent_id": [3, 2, 1, 12, 19, 17]} -{"sent_id": [2, 3, 5, 4, 1, 12]} -{"sent_id": [1, 3, 5, 2, 9, 12]} -{"sent_id": [5, 6, 13, 20, 19, 1]} -{"sent_id": [1, 7, 8, 0, 4, 10]} -{"sent_id": [3, 2, 11, 1, 4, 14]} -{"sent_id": [5, 4, 13, 3, 15, 12]} -{"sent_id": [1, 3, 2, 18, 0, 5]} -{"sent_id": [2, 8, 3, 1, 6, 9]} -{"sent_id": [1, 8, 5, 6, 17, 4]} -{"sent_id": [7, 1, 10, 16, 18, 15]} -{"sent_id": [1, 2, 12, 4, 0, 5]} -{"sent_id": [3, 5, 7, 4, 1, 2]} -{"sent_id": [3, 4, 2, 1, 5, 6]} -{"sent_id": [3, 13, 8, 2, 7, 5]} -{"sent_id": [0, 1, 7, 3, 2, 5]} -{"sent_id": [2, 3, 4, 17, 1, 18]} -{"sent_id": [3, 4, 7, 1, 0, 2]} -{"sent_id": [2, 4, 6, 3, 7, 8]} -{"sent_id": [1, 2, 3, 5, 4, 7]} -{"sent_id": [8, 4, 1, 6, 3, 2]} -{"sent_id": [7, 4, 8, 6, 5, 11]} -{"sent_id": [3, 4, 2, 1, 0, 5]} -{"sent_id": [1, 3, 7, 2, 6, 4]} -{"sent_id": [3, 2, 1, 11, 10, 0]} -{"sent_id": [4, 7, 5, 9, 2, 8]} -{"sent_id": [8, 4, 7, 5, 6, 0]} -{"sent_id": [3, 1, 6, 2, 5, 4]} -{"sent_id": [10, 1, 3, 4, 2, 17]} -{"sent_id": [6, 0, 7, 2, 8, 1]} -{"sent_id": [3, 1, 13, 4, 8, 0]} -{"sent_id": [4, 0, 1, 5, 2, 6]} -{"sent_id": [2, 5, 3, 1, 0, 4]} -{"sent_id": [3, 1, 5, 6, 2, 7]} -{"sent_id": [3, 1, 0, 2, 6, 5]} -{"sent_id": [2, 9, 4, 3, 8, 0]} -{"sent_id": [5, 0, 2, 3, 1, 14]} -{"sent_id": [5, 0, 2, 1, 22, 26]} -{"sent_id": [2, 3, 1, 0, 9, 7]} -{"sent_id": [3, 0, 1, 4, 17, 18]} -{"sent_id": [4, 1, 2, 0, 3, 7]} -{"sent_id": [7, 1, 27, 2, 9, 29]} -{"sent_id": [0, 2, 17, 10, 3, 4]} -{"sent_id": [4, 3, 1, 0, 15, 16]} -{"sent_id": [3, 16, 1, 18, 2, 4]} -{"sent_id": [1, 2, 4, 3, 6, 11]} -{"sent_id": [4, 19, 17, 0, 11, 1]} -{"sent_id": [2, 4, 3, 10, 0, 5]} -{"sent_id": [4, 0, 3, 11, 20, 9]} -{"sent_id": [1, 4, 2, 3, 5, 6]} -{"sent_id": [1, 2, 8, 5, 6, 4]} -{"sent_id": [1, 3, 2, 5, 6, 0]} -{"sent_id": [1, 11, 3, 8, 5, 0]} -{"sent_id": [3, 11, 7, 9, 8, 4]} -{"sent_id": [3, 9, 1, 4, 2, 8]} -{"sent_id": [1, 2, 3, 4, 5, 15]} -{"sent_id": [1, 4, 9, 12, 3, 2]} -{"sent_id": [2, 1, 9, 7, 0, 5]} -{"sent_id": [1, 2, 4, 6, 5, 8]} -{"sent_id": [1, 15, 2, 4, 0, 5]} -{"sent_id": [1, 3, 4, 2, 6, 12]} -{"sent_id": [2, 3, 1, 5, 0, 6]} -{"sent_id": [14, 13, 1, 6, 8, 2]} -{"sent_id": [3, 6, 4, 7, 2, 10]} -{"sent_id": [3, 1, 0, 14, 4, 2]} -{"sent_id": [2, 0, 1, 10, 7, 8]} -{"sent_id": [4, 15, 5, 3, 0, 1]} -{"sent_id": [3, 4, 2, 0, 11, 12]} -{"sent_id": [1, 2, 3, 9, 6, 4]} -{"sent_id": [1, 9, 4, 2, 3, 0]} -{"sent_id": [1, 3, 2, 8, 10, 9]} -{"sent_id": [4, 0, 2, 6, 5, 3]} -{"sent_id": [10, 8, 4, 13, 16, 11]} -{"sent_id": [11, 1, 16, 2, 10, 4]} -{"sent_id": [4, 6, 3, 5, 7, 1]} -{"sent_id": [8, 9, 4, 6, 2, 5]} -{"sent_id": [2, 3, 17, 0, 1, 4]} -{"sent_id": [3, 1, 2, 7, 8, 0]} -{"sent_id": [0, 4, 3, 12, 2, 1]} -{"sent_id": [7, 0, 4, 13, 11, 2]} -{"sent_id": [1, 3, 4, 0, 2, 13]} -{"sent_id": [3, 1, 2, 14, 0, 4]} -{"sent_id": [5, 1, 0, 2, 10, 4]} -{"sent_id": [2, 1, 3, 7, 4, 6]} -{"sent_id": [1, 3, 4, 2, 14, 8]} -{"sent_id": [2, 1, 15, 3, 11, 9]} -{"sent_id": [1, 3, 2, 5, 6, 13]} -{"sent_id": [2, 1, 6, 4, 3, 14]} -{"sent_id": [1, 4, 17, 16, 0, 15]} -{"sent_id": [1, 2, 4, 0, 15, 6]} -{"sent_id": [3, 0, 5, 8, 2, 1]} -{"sent_id": [3, 2, 5, 14, 4, 6]} -{"sent_id": [9, 4, 1, 2, 6, 0]} -{"sent_id": [9, 0, 6, 14, 7, 3]} -{"sent_id": [4, 12, 6, 3, 2, 7]} -{"sent_id": [2, 1, 6, 3, 8, 5]} -{"sent_id": [0, 2, 5, 1, 7, 6]} -{"sent_id": [1, 4, 5, 2, 14, 6]} -{"sent_id": [4, 3, 2, 1, 7, 5]} -{"sent_id": [3, 1, 5, 0, 4, 10]} -{"sent_id": [5, 0, 4, 1, 8, 2]} -{"sent_id": [3, 0, 4, 12, 1, 2]} -{"sent_id": [1, 2, 4, 6, 5, 0]} -{"sent_id": [4, 3, 5, 0, 1, 6]} -{"sent_id": [1, 3, 2, 11, 7, 6]} -{"sent_id": [0, 1, 7, 4, 3, 9]} -{"sent_id": [4, 2, 0, 3, 12, 1]} -{"sent_id": [2, 1, 0, 3, 5, 12]} -{"sent_id": [1, 3, 6, 2, 4, 12]} -{"sent_id": [1, 2, 3, 10, 5, 13]} -{"sent_id": [3, 10, 4, 1, 5, 6]} -{"sent_id": [2, 3, 4, 0, 1, 8]} -{"sent_id": [1, 5, 6, 9, 3, 13]} -{"sent_id": [3, 1, 9, 6, 4, 2]} -{"sent_id": [3, 0, 1, 11, 2, 9]} -{"sent_id": [6, 9, 10, 4, 12, 1]} -{"sent_id": [2, 9, 7, 0, 8, 5]} -{"sent_id": [1, 0, 5, 3, 2, 4]} -{"sent_id": [2, 1, 0, 4, 5, 10]} -{"sent_id": [4, 12, 3, 1, 0, 2]} -{"sent_id": [6, 0, 19, 7, 2, 9]} -{"sent_id": [1, 2, 3, 0, 4, 7]} -{"sent_id": [0, 1, 2, 9, 3, 8]} -{"sent_id": [3, 5, 8, 7, 4, 9]} -{"sent_id": [3, 4, 1, 17, 0, 5]} -{"sent_id": [3, 2, 0, 11, 1, 8]} -{"sent_id": [2, 0, 1, 6, 13, 4]} -{"sent_id": [3, 1, 5, 6, 2, 7]} -{"sent_id": [4, 0, 1, 5, 6, 2]} -{"sent_id": [8, 6, 0, 7, 1, 3]} -{"sent_id": [6, 7, 3, 4, 5, 14]} -{"sent_id": [0, 4, 3, 5, 1, 7]} -{"sent_id": [3, 4, 0, 1, 10, 6]} -{"sent_id": [2, 8, 11, 3, 0, 18]} -{"sent_id": [4, 3, 8, 2, 16, 0]} -{"sent_id": [8, 4, 0, 15, 14, 3]} -{"sent_id": [2, 3, 1, 14, 17, 4]} -{"sent_id": [0, 12, 13, 14, 10, 2]} -{"sent_id": [1, 3, 11, 5, 4, 6]} -{"sent_id": [0, 3, 8, 2, 9, 1]} -{"sent_id": [1, 2, 0, 8, 4, 6]} -{"sent_id": [3, 1, 10, 0, 2, 11]} -{"sent_id": [0, 4, 1, 2, 15, 5]} -{"sent_id": [4, 3, 0, 12, 1, 2]} -{"sent_id": [1, 4, 3, 5, 9, 2]} -{"sent_id": [3, 1, 4, 2, 14, 0]} -{"sent_id": [12, 0, 7, 2, 1, 3]} -{"sent_id": [0, 21, 22, 4, 1, 2]} -{"sent_id": [0, 4, 5, 1, 2, 3]} -{"sent_id": [0, 3, 4, 2, 7, 1]} -{"sent_id": [0, 2, 1, 13, 11, 12]} -{"sent_id": [2, 0, 10, 3, 11, 4]} -{"sent_id": [0, 1, 2, 10, 3, 5]} -{"sent_id": [2, 7, 1, 8, 3, 4]} -{"sent_id": [3, 0, 2, 1, 10, 12]} -{"sent_id": [2, 1, 9, 0, 3, 17]} -{"sent_id": [3, 4, 0, 10, 1, 9]} -{"sent_id": [3, 1, 2, 12, 10, 5]} -{"sent_id": [8, 0, 5, 1, 2, 4]} -{"sent_id": [3, 0, 11, 1, 8, 4]} -{"sent_id": [4, 15, 3, 2, 5, 6]} -{"sent_id": [1, 4, 2, 11, 5, 8]} -{"sent_id": [0, 4, 1, 3, 2, 7]} -{"sent_id": [1, 3, 4, 9, 13, 15]} -{"sent_id": [2, 3, 4, 6, 1, 0]} -{"sent_id": [2, 4, 8, 3, 9, 17]} -{"sent_id": [2, 1, 7, 10, 0, 4]} -{"sent_id": [1, 3, 4, 5, 2, 13]} -{"sent_id": [5, 20, 21, 6, 11, 17]} -{"sent_id": [5, 0, 11, 14, 23, 13]} -{"sent_id": [4, 8, 9, 10, 0, 6]} -{"sent_id": [7, 4, 0, 8, 2, 3]} -{"sent_id": [14, 18, 12, 13, 2, 17]} -{"sent_id": [4, 1, 2, 3, 7, 9]} -{"sent_id": [2, 8, 12, 10, 1, 16]} -{"sent_id": [5, 11, 12, 3, 2, 1]} -{"sent_id": [1, 2, 0, 5, 6, 8]} -{"sent_id": [1, 3, 2, 0, 5, 6]} -{"sent_id": [1, 4, 2, 11, 8, 3]} -{"sent_id": [3, 0, 12, 1, 2, 13]} -{"sent_id": [3, 1, 6, 9, 0, 4]} -{"sent_id": [2, 1, 5, 6, 3, 10]} -{"sent_id": [5, 0, 3, 4, 2, 1]} -{"sent_id": [3, 4, 10, 11, 1, 14]} -{"sent_id": [2, 0, 1, 3, 6, 5]} -{"sent_id": [1, 3, 2, 4, 7, 0]} -{"sent_id": [6, 7, 0, 8, 13, 2]} -{"sent_id": [1, 2, 3, 7, 15, 4]} -{"sent_id": [1, 2, 0, 4, 3, 9]} -{"sent_id": [1, 2, 3, 4, 5, 6]} -{"sent_id": [0, 1, 3, 2, 4, 5]} -{"sent_id": [2, 0, 11, 3, 7, 5]} -{"sent_id": [1, 2, 5, 4, 6, 13]} -{"sent_id": [1, 2, 6, 4, 0, 5]} -{"sent_id": [1, 2, 3, 4, 9, 5]} -{"sent_id": [2, 3, 5, 0, 1, 14]} -{"sent_id": [1, 3, 0, 4, 5, 9]} -{"sent_id": [4, 1, 5, 2, 12, 10]} -{"sent_id": [1, 3, 2, 0, 13, 17]} -{"sent_id": [2, 1, 10, 15, 4, 13]} -{"sent_id": [1, 2, 5, 3, 4, 7]} -{"sent_id": [0, 5, 6, 2, 14, 9]} -{"sent_id": [3, 10, 11, 5, 2, 4]} -{"sent_id": [0, 5, 2, 1, 13, 11]} -{"sent_id": [2, 3, 1, 0, 7, 19]} -{"sent_id": [4, 3, 1, 0, 5, 2]} -{"sent_id": [1, 4, 10, 2, 3, 9]} -{"sent_id": [3, 2, 4, 5, 12, 1]} -{"sent_id": [5, 2, 4, 3, 13, 8]} -{"sent_id": [2, 5, 7, 1, 3, 10]} -{"sent_id": [0, 3, 1, 10, 11, 2]} -{"sent_id": [3, 5, 1, 9, 4, 6]} -{"sent_id": [6, 0, 14, 11, 15, 4]} -{"sent_id": [0, 3, 5, 1, 2, 8]} -{"sent_id": [0, 1, 5, 2, 4, 7]} -{"sent_id": [0, 1, 2, 21, 4, 10]} -{"sent_id": [2, 5, 3, 0, 11, 14]} -{"sent_id": [7, 18, 22, 8, 16, 0]} -{"sent_id": [1, 3, 0, 12, 5, 2]} -{"sent_id": [2, 9, 1, 0, 3, 10]} -{"sent_id": [9, 3, 6, 1, 0, 2]} -{"sent_id": [0, 10, 1, 20, 2, 6]} -{"sent_id": [1, 0, 14, 2, 10, 15]} -{"sent_id": [0, 2, 3, 13, 1, 5]} -{"sent_id": [1, 3, 8, 9, 7, 0]} -{"sent_id": [1, 8, 6, 17, 3, 4]} -{"sent_id": [2, 4, 3, 1, 12, 5]} -{"sent_id": [3, 1, 0, 4, 5, 8]} -{"sent_id": [6, 1, 0, 3, 11, 4]} -{"sent_id": [4, 3, 7, 6, 8, 2]} -{"sent_id": [8, 3, 1, 2, 0, 4]} -{"sent_id": [4, 0, 2, 1, 6, 3]} -{"sent_id": [1, 5, 3, 2, 0, 6]} -{"sent_id": [1, 4, 2, 7, 10, 5]} -{"sent_id": [4, 2, 6, 1, 3, 7]} -{"sent_id": [5, 14, 9, 15, 1, 11]} -{"sent_id": [3, 10, 0, 2, 1, 4]} -{"sent_id": [1, 4, 2, 10, 3, 6]} -{"sent_id": [0, 1, 12, 2, 3, 4]} -{"sent_id": [3, 8, 0, 1, 7, 6]} -{"sent_id": [2, 1, 7, 8, 4, 3]} -{"sent_id": [1, 5, 2, 4, 3, 6]} -{"sent_id": [0, 4, 1, 3, 12, 2]} -{"sent_id": [1, 13, 9, 0, 3, 4]} -{"sent_id": [3, 2, 7, 1, 13, 6]} -{"sent_id": [0, 1, 2, 4, 5, 6]} -{"sent_id": [1, 2, 4, 16, 13, 12]} -{"sent_id": [0, 3, 1, 2, 8, 6]} -{"sent_id": [2, 3, 5, 1, 4, 0]} -{"sent_id": [2, 3, 1, 8, 12, 0]} -{"sent_id": [1, 0, 3, 6, 11, 13]} -{"sent_id": [4, 5, 6, 1, 2, 3]} -{"sent_id": [1, 0, 3, 2, 6, 9]} -{"sent_id": [1, 4, 2, 0, 5, 3]} -{"sent_id": [1, 2, 0, 8, 10, 5]} -{"sent_id": [1, 2, 3, 0, 6, 5]} -{"sent_id": [2, 3, 4, 5, 0, 1]} -{"sent_id": [4, 5, 1, 12, 2, 3]} -{"sent_id": [3, 6, 4, 0, 7, 2]} -{"sent_id": [1, 0, 4, 17, 14, 9]} -{"sent_id": [1, 4, 5, 10, 9, 2]} -{"sent_id": [2, 0, 3, 1, 9, 10]} -{"sent_id": [3, 2, 9, 1, 10, 0]} -{"sent_id": [3, 1, 2, 9, 4, 5]} -{"sent_id": [0, 3, 1, 16, 4, 6]} -{"sent_id": [2, 3, 1, 4, 10, 11]} -{"sent_id": [3, 11, 1, 9, 5, 2]} -{"sent_id": [1, 0, 7, 2, 5, 3]} -{"sent_id": [3, 10, 1, 4, 7, 2]} -{"sent_id": [4, 0, 9, 2, 5, 8]} -{"sent_id": [3, 0, 1, 8, 2, 9]} -{"sent_id": [3, 0, 2, 1, 14, 4]} -{"sent_id": [10, 2, 4, 3, 1, 5]} -{"sent_id": [3, 1, 9, 4, 6, 11]} -{"sent_id": [1, 2, 3, 6, 8, 12]} -{"sent_id": [7, 10, 4, 8, 1, 11]} -{"sent_id": [3, 1, 2, 10, 11, 12]} -{"sent_id": [0, 2, 3, 10, 8, 9]} -{"sent_id": [3, 0, 1, 2, 4, 10]} -{"sent_id": [1, 13, 3, 0, 2, 4]} -{"sent_id": [12, 3, 10, 0, 13, 2]} -{"sent_id": [3, 12, 2, 1, 4, 13]} -{"sent_id": [0, 9, 1, 4, 2, 12]} -{"sent_id": [3, 7, 5, 8, 9, 6]} -{"sent_id": [0, 11, 2, 4, 1, 5]} -{"sent_id": [3, 2, 12, 1, 0, 4]} -{"sent_id": [10, 3, 2, 20, 5, 8]} -{"sent_id": [1, 0, 6, 2, 3, 9]} -{"sent_id": [9, 6, 7, 8, 3, 10]} -{"sent_id": [1, 3, 2, 6, 0, 8]} -{"sent_id": [0, 5, 1, 2, 6, 11]} -{"sent_id": [1, 3, 4, 0, 2, 5]} -{"sent_id": [2, 0, 4, 1, 6, 3]} -{"sent_id": [1, 7, 14, 2, 10, 11]} -{"sent_id": [1, 5, 6, 2, 3, 0]} -{"sent_id": [10, 4, 5, 3, 2, 1]} -{"sent_id": [0, 2, 1, 4, 10, 12]} -{"sent_id": [3, 2, 1, 5, 0, 6]} -{"sent_id": [1, 2, 5, 8, 3, 6]} -{"sent_id": [8, 4, 0, 1, 5, 2]} -{"sent_id": [1, 2, 3, 5, 12, 16]} -{"sent_id": [0, 6, 1, 2, 3, 5]} -{"sent_id": [1, 5, 2, 7, 10, 0]} -{"sent_id": [3, 4, 9, 5, 8, 1]} -{"sent_id": [0, 13, 1, 8, 2, 6]} -{"sent_id": [1, 11, 0, 2, 10, 9]} -{"sent_id": [1, 10, 12, 15, 9, 16]} -{"sent_id": [1, 2, 3, 9, 8, 5]} -{"sent_id": [2, 4, 1, 5, 10, 3]} -{"sent_id": [2, 3, 4, 0, 13, 1]} -{"sent_id": [3, 8, 9, 2, 1, 0]} -{"sent_id": [8, 0, 1, 4, 3, 5]} -{"sent_id": [6, 2, 10, 9, 8, 1]} -{"sent_id": [6, 9, 4, 7, 11, 10]} -{"sent_id": [1, 8, 2, 6, 5, 4]} -{"sent_id": [1, 8, 6, 5, 2, 11]} -{"sent_id": [1, 5, 4, 2, 0, 6]} -{"sent_id": [1, 4, 5, 2, 0, 10]} -{"sent_id": [3, 5, 2, 4, 6, 17]} -{"sent_id": [2, 7, 0, 3, 1, 8]} -{"sent_id": [2, 5, 4, 3, 0, 6]} -{"sent_id": [1, 3, 2, 7, 4, 8]} -{"sent_id": [1, 0, 2, 3, 4, 11]} -{"sent_id": [6, 2, 16, 9, 0, 7]} -{"sent_id": [3, 1, 6, 10, 2, 5]} -{"sent_id": [3, 1, 0, 5, 8, 4]} -{"sent_id": [3, 1, 12, 7, 5, 4]} -{"sent_id": [3, 0, 9, 1, 7, 5]} -{"sent_id": [0, 1, 3, 4, 10, 13]} -{"sent_id": [2, 9, 11, 15, 8, 10]} -{"sent_id": [4, 5, 3, 1, 2, 7]} -{"sent_id": [2, 3, 5, 6, 4, 12]} -{"sent_id": [3, 10, 2, 11, 9, 6]} -{"sent_id": [5, 6, 1, 3, 2, 0]} -{"sent_id": [3, 7, 1, 2, 5, 4]} -{"sent_id": [0, 1, 10, 11, 9, 5]} -{"sent_id": [2, 0, 3, 1, 5, 4]} -{"sent_id": [1, 2, 3, 7, 4, 9]} -{"sent_id": [1, 2, 4, 9, 10, 5]} -{"sent_id": [2, 3, 6, 4, 5, 0]} -{"sent_id": [9, 1, 2, 0, 10, 3]} -{"sent_id": [3, 10, 0, 4, 6, 11]} -{"sent_id": [1, 4, 13, 0, 2, 8]} -{"sent_id": [1, 7, 3, 2, 9, 12]} -{"sent_id": [1, 2, 17, 3, 5, 16]} -{"sent_id": [4, 3, 8, 7, 1, 0]} -{"sent_id": [2, 3, 4, 11, 7, 6]} -{"sent_id": [2, 1, 3, 5, 6, 0]} -{"sent_id": [2, 13, 8, 15, 18, 1]} -{"sent_id": [3, 4, 5, 9, 1, 6]} -{"sent_id": [19, 3, 2, 17, 4, 1]} -{"sent_id": [2, 0, 1, 8, 9, 4]} -{"sent_id": [3, 4, 5, 9, 7, 6]} -{"sent_id": [3, 2, 4, 1, 0, 5]} -{"sent_id": [3, 2, 4, 8, 1, 13]} -{"sent_id": [1, 3, 0, 4, 7, 11]} -{"sent_id": [10, 8, 0, 1, 7, 5]} -{"sent_id": [1, 9, 4, 2, 8, 3]} -{"sent_id": [1, 3, 11, 2, 0, 4]} -{"sent_id": [2, 4, 3, 5, 9, 10]} -{"sent_id": [3, 0, 4, 1, 9, 2]} -{"sent_id": [1, 4, 14, 12, 5, 3]} -{"sent_id": [2, 7, 1, 0, 5, 3]} -{"sent_id": [0, 1, 4, 2, 3, 6]} -{"sent_id": [4, 14, 3, 15, 5, 0]} -{"sent_id": [1, 2, 3, 4, 8, 5]} -{"sent_id": [1, 3, 0, 8, 4, 2]} -{"sent_id": [3, 1, 4, 0, 8, 2]} -{"sent_id": [2, 0, 1, 19, 4, 3]} -{"sent_id": [4, 1, 2, 13, 0, 5]} -{"sent_id": [2, 8, 3, 9, 4, 7]} -{"sent_id": [3, 4, 2, 0, 9, 8]} -{"sent_id": [1, 10, 6, 4, 0, 2]} -{"sent_id": [3, 2, 1, 0, 4, 5]} -{"sent_id": [1, 2, 0, 3, 5, 7]} -{"sent_id": [3, 2, 5, 4, 6, 8]} -{"sent_id": [2, 1, 4, 3, 5, 0]} -{"sent_id": [2, 6, 1, 4, 7, 0]} -{"sent_id": [1, 2, 3, 9, 0, 6]} -{"sent_id": [0, 10, 2, 4, 18, 5]} -{"sent_id": [0, 5, 1, 8, 3, 4]} -{"sent_id": [1, 10, 5, 2, 4, 3]} -{"sent_id": [3, 7, 14, 2, 1, 11]} -{"sent_id": [6, 7, 21, 0, 11, 14]} -{"sent_id": [8, 2, 6, 1, 0, 4]} -{"sent_id": [0, 3, 2, 1, 8, 10]} -{"sent_id": [3, 1, 4, 6, 2, 0]} -{"sent_id": [1, 2, 4, 8, 10, 7]} -{"sent_id": [1, 15, 3, 0, 2, 5]} -{"sent_id": [3, 4, 0, 1, 7, 2]} -{"sent_id": [4, 5, 6, 2, 0, 1]} -{"sent_id": [1, 8, 3, 0, 13, 15]} -{"sent_id": [5, 4, 7, 15, 6, 3]} -{"sent_id": [3, 1, 0, 6, 2, 11]} -{"sent_id": [2, 3, 6, 4, 9, 5]} -{"sent_id": [1, 2, 3, 6, 8, 12]} -{"sent_id": [3, 1, 6, 4, 5, 0]} -{"sent_id": [4, 0, 6, 2, 1, 5]} -{"sent_id": [0, 9, 1, 2, 4, 6]} -{"sent_id": [3, 11, 1, 8, 2, 5]} -{"sent_id": [7, 3, 0, 2, 1, 12]} -{"sent_id": [2, 1, 3, 13, 5, 7]} -{"sent_id": [2, 3, 8, 4, 5, 6]} -{"sent_id": [5, 1, 2, 6, 0, 3]} -{"sent_id": [1, 7, 4, 6, 0, 2]} -{"sent_id": [1, 7, 4, 8, 3, 10]} -{"sent_id": [5, 1, 6, 3, 4, 2]} -{"sent_id": [9, 4, 5, 2, 10, 14]} -{"sent_id": [3, 2, 1, 16, 8, 4]} -{"sent_id": [1, 2, 3, 7, 6, 4]} -{"sent_id": [2, 1, 4, 3, 7, 6]} -{"sent_id": [3, 1, 2, 5, 15, 9]} -{"sent_id": [3, 0, 4, 1, 5, 2]} -{"sent_id": [1, 2, 5, 0, 7, 4]} -{"sent_id": [1, 0, 8, 3, 4, 2]} -{"sent_id": [2, 1, 0, 9, 13, 5]} -{"sent_id": [1, 8, 4, 2, 11, 9]} -{"sent_id": [0, 4, 1, 2, 13, 3]} -{"sent_id": [0, 2, 1, 4, 9, 3]} -{"sent_id": [3, 9, 1, 0, 2, 10]} -{"sent_id": [1, 3, 2, 4, 0, 9]} -{"sent_id": [1, 3, 2, 13, 8, 0]} -{"sent_id": [3, 2, 12, 5, 1, 9]} -{"sent_id": [8, 1, 0, 4, 2, 5]} -{"sent_id": [3, 2, 12, 11, 4, 1]} -{"sent_id": [3, 0, 11, 2, 1, 9]} -{"sent_id": [0, 1, 2, 4, 5, 10]} -{"sent_id": [1, 0, 7, 2, 6, 4]} -{"sent_id": [1, 4, 7, 8, 6, 5]} -{"sent_id": [1, 2, 6, 3, 5, 7]} -{"sent_id": [1, 3, 7, 2, 0, 4]} -{"sent_id": [1, 3, 6, 2, 7, 5]} -{"sent_id": [2, 1, 4, 5, 12, 8]} -{"sent_id": [1, 0, 3, 2, 5, 6]} -{"sent_id": [11, 3, 9, 14, 1, 16]} -{"sent_id": [1, 0, 4, 6, 3, 5]} -{"sent_id": [1, 2, 4, 3, 7, 5]} -{"sent_id": [5, 10, 16, 15, 12, 11]} -{"sent_id": [0, 1, 5, 4, 20, 2]} -{"sent_id": [4, 10, 3, 8, 12, 7]} -{"sent_id": [0, 14, 4, 1, 6, 3]} -{"sent_id": [2, 1, 5, 11, 0, 9]} -{"sent_id": [3, 1, 4, 5, 6, 2]} -{"sent_id": [5, 1, 2, 12, 7, 0]} -{"sent_id": [6, 0, 2, 1, 10, 4]} -{"sent_id": [13, 0, 5, 1, 14, 6]} -{"sent_id": [7, 4, 3, 2, 15, 5]} -{"sent_id": [1, 0, 9, 2, 4, 3]} -{"sent_id": [4, 17, 7, 2, 11, 3]} -{"sent_id": [2, 18, 0, 19, 3, 4]} -{"sent_id": [2, 4, 5, 1, 6, 10]} -{"sent_id": [2, 1, 4, 3, 18, 6]} -{"sent_id": [2, 1, 0]} -{"sent_id": [2, 6, 9, 5, 7, 1]} -{"sent_id": [2, 1, 4, 3, 12, 0]} -{"sent_id": [0, 7, 19, 10, 2, 5]} -{"sent_id": [1, 3, 0, 2, 4, 7]} -{"sent_id": [2, 7, 5, 1, 0, 10]} -{"sent_id": [2, 0, 3, 13, 12, 1]} -{"sent_id": [1, 6, 0, 8, 2, 4]} -{"sent_id": [2, 3, 7, 1, 12, 4]} -{"sent_id": [1, 2, 3, 6, 0, 5]} -{"sent_id": [2, 4, 5, 7, 12, 1]} -{"sent_id": [16, 0, 12, 1, 6, 2]} -{"sent_id": [4, 3, 5, 6, 10, 8]} -{"sent_id": [1, 0, 3, 8, 5, 6]} -{"sent_id": [4, 5, 3, 1, 2, 13]} -{"sent_id": [1, 13, 17, 0, 2, 7]} -{"sent_id": [3, 12, 4, 1, 8, 9]} -{"sent_id": [4, 1, 5, 3, 0, 8]} -{"sent_id": [4, 1, 6, 2, 14, 15]} -{"sent_id": [2, 1, 5, 0, 6, 3]} -{"sent_id": [1, 5, 2, 3, 18, 17]} -{"sent_id": [1, 6, 14, 3, 5, 2]} -{"sent_id": [0, 1, 10, 7, 8, 2]} -{"sent_id": [4, 0, 10, 8, 2, 16]} -{"sent_id": [7, 2, 5, 9, 8, 15]} -{"sent_id": [0, 2, 3, 4, 17, 6]} -{"sent_id": [1, 5, 6, 4, 2, 12]} -{"sent_id": [0, 5, 3, 4, 2, 1]} -{"sent_id": [4, 11, 6, 3, 7, 16]} -{"sent_id": [4, 10, 5, 2, 11, 3]} -{"sent_id": [1, 2, 4, 5, 8, 12]} -{"sent_id": [8, 3, 0, 4, 1, 11]} -{"sent_id": [2, 3, 4, 1, 0, 5]} -{"sent_id": [2, 1, 0, 5, 6, 12]} -{"sent_id": [3, 14, 4, 7, 2, 10]} -{"sent_id": [4, 5, 0, 19, 21, 1]} -{"sent_id": [3, 1, 2, 4, 5, 8]} -{"sent_id": [3, 12, 4, 14, 5, 19]} -{"sent_id": [1, 2, 3, 6, 7, 0]} -{"sent_id": [1, 2, 3, 4, 6, 13]} -{"sent_id": [3, 1, 6, 4, 2, 7]} -{"sent_id": [2, 1, 6, 7, 0, 8]} -{"sent_id": [3, 6, 5, 9, 2, 0]} -{"sent_id": [11, 2, 3, 1, 5, 4]} -{"sent_id": [1, 2, 4, 3, 5, 8]} -{"sent_id": [12, 4, 0, 3, 2, 1]} -{"sent_id": [7, 2, 6, 1, 9, 0]} -{"sent_id": [0, 3, 10, 11, 2, 1]} -{"sent_id": [3, 2, 0, 4, 1, 10]} -{"sent_id": [1, 4, 0, 8, 7, 2]} -{"sent_id": [1, 4, 6, 3, 0, 2]} -{"sent_id": [1, 2, 0, 3, 11, 8]} -{"sent_id": [1, 0, 3, 7, 9, 2]} -{"sent_id": [6, 0, 2, 1, 3, 4]} -{"sent_id": [0, 5, 1, 8, 2, 3]} -{"sent_id": [4, 0, 10, 5, 3, 6]} -{"sent_id": [2, 1, 8, 0, 21, 4]} -{"sent_id": [0, 1, 2]} -{"sent_id": [15, 3, 1, 8, 7, 4]} -{"sent_id": [1, 6, 4, 2, 13, 5]} -{"sent_id": [4, 2, 14, 1, 6, 0]} -{"sent_id": [0, 1, 3, 2, 9, 4]} -{"sent_id": [3, 1, 2, 9, 4, 11]} -{"sent_id": [2, 1, 0, 4, 9, 5]} -{"sent_id": [5, 2, 4, 7, 11, 1]} -{"sent_id": [1, 12, 4, 5, 0, 16]} -{"sent_id": [8, 3, 1, 2, 0, 7]} -{"sent_id": [0, 4, 2, 3, 13, 1]} -{"sent_id": [3, 4, 10, 1, 0, 13]} -{"sent_id": [3, 1, 4, 0, 11, 10]} -{"sent_id": [3, 2, 4, 1, 5, 9]} -{"sent_id": [4, 2, 3, 5, 1, 0]} -{"sent_id": [1, 9, 10, 13, 0, 16]} -{"sent_id": [4, 3, 5, 1, 7, 6]} -{"sent_id": [1, 4, 5, 3, 2, 9]} -{"sent_id": [2, 1, 0, 6, 5, 4]} -{"sent_id": [0, 2, 4, 3, 6, 1]} -{"sent_id": [0, 2, 3, 1, 12, 5]} -{"sent_id": [1, 3, 8, 2, 6, 7]} -{"sent_id": [9, 16, 4, 10, 2, 3]} -{"sent_id": [1, 3, 4, 2, 0, 8]} -{"sent_id": [1, 2, 5, 0, 3, 9]} -{"sent_id": [1, 11, 4, 3, 2, 13]} -{"sent_id": [1, 4, 2, 0, 3, 5]} -{"sent_id": [1, 2, 3, 12, 13, 8]} -{"sent_id": [4, 3, 0, 1, 8, 11]} -{"sent_id": [4, 8, 2, 11, 1, 10]} -{"sent_id": [0, 3, 4, 11, 2, 1]} -{"sent_id": [0, 5, 3, 2, 1, 6]} -{"sent_id": [3, 12, 1, 14, 2, 13]} -{"sent_id": [1, 2, 3, 6, 5, 7]} -{"sent_id": [1, 2, 8, 4, 0, 10]} -{"sent_id": [4, 3, 2, 0, 1, 8]} -{"sent_id": [3, 4, 0, 5, 14, 2]} -{"sent_id": [2, 3, 0, 8, 4, 7]} -{"sent_id": [2, 3, 1, 0, 8, 12]} -{"sent_id": [2, 1, 4, 0, 5, 8]} -{"sent_id": [3, 0, 4, 1, 5, 2]} -{"sent_id": [2, 3, 4, 5, 8, 0]} -{"sent_id": [3, 9, 0, 2, 10, 8]} -{"sent_id": [1, 7, 8, 0, 3, 6]} -{"sent_id": [3, 0, 2, 6, 9, 10]} -{"sent_id": [5, 4, 8, 12, 0, 6]} -{"sent_id": [1, 10, 2, 6, 5, 4]} -{"sent_id": [3, 11, 4, 0, 10, 1]} -{"sent_id": [1, 2, 4, 12, 0, 3]} -{"sent_id": [1, 2, 4, 7, 0, 11]} -{"sent_id": [0, 2, 3, 19, 4, 7]} -{"sent_id": [8, 5, 0, 4, 15, 1]} -{"sent_id": [0, 3, 2, 5, 1, 6]} -{"sent_id": [1, 3, 2, 7, 8, 4]} -{"sent_id": [0, 2, 4, 3, 13, 6]} -{"sent_id": [0, 12, 5, 2, 4, 8]} -{"sent_id": [3, 2, 0, 9, 1, 4]} -{"sent_id": [3, 7, 2, 1, 0, 6]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [4, 1, 0, 2, 11, 13]} -{"sent_id": [1, 5, 2, 10, 3, 0]} -{"sent_id": [1, 5, 3, 12, 8, 9]} -{"sent_id": [1, 3, 12, 4, 2, 5]} -{"sent_id": [2, 4, 1, 0, 10, 6]} -{"sent_id": [1, 2, 5, 4, 0, 14]} -{"sent_id": [1, 2, 3, 11, 8, 0]} -{"sent_id": [0, 1, 2, 11, 3, 5]} -{"sent_id": [0, 13, 1, 4, 3, 14]} -{"sent_id": [2, 4, 5, 8, 0, 12]} -{"sent_id": [1, 2, 7, 3, 5, 4]} -{"sent_id": [1, 2, 0, 7, 5, 6]} -{"sent_id": [2, 1, 9, 10, 3, 11]} -{"sent_id": [6, 5, 3, 0, 7, 8]} -{"sent_id": [1, 9, 6, 0, 18, 4]} -{"sent_id": [1, 8, 0, 10, 7, 13]} -{"sent_id": [4, 3, 1, 2, 5, 0]} -{"sent_id": [3, 1, 2, 9, 5, 4]} -{"sent_id": [2, 4, 7, 3, 5, 10]} -{"sent_id": [3, 1, 2, 11, 10, 7]} -{"sent_id": [4, 1, 5, 3, 0, 11]} -{"sent_id": [1, 0, 2, 8, 6, 5]} -{"sent_id": [3, 5, 1, 6, 15, 17]} -{"sent_id": [1, 3, 0, 2, 12, 5]} -{"sent_id": [3, 4, 0, 12, 1, 6]} -{"sent_id": [3, 1, 6, 8, 11, 2]} -{"sent_id": [2, 1, 4, 6, 10, 3]} -{"sent_id": [3, 14, 13, 15, 2, 7]} -{"sent_id": [0, 3, 2, 6, 1, 7]} -{"sent_id": [1, 3, 4, 17, 0, 12]} -{"sent_id": [3, 1, 5, 4, 12, 0]} -{"sent_id": [0, 4, 1, 12, 14, 2]} -{"sent_id": [5, 2, 4, 0, 1, 7]} -{"sent_id": [1, 4, 2, 3, 0, 8]} -{"sent_id": [3, 8, 5, 1, 9, 12]} -{"sent_id": [8, 14, 2, 15, 19, 16]} -{"sent_id": [3, 1, 8, 2, 6, 4]} -{"sent_id": [4, 1, 16, 0, 8, 3]} -{"sent_id": [3, 5, 4, 6, 11, 10]} -{"sent_id": [2, 3, 1, 13, 14, 15]} -{"sent_id": [0, 1, 3, 2, 12, 9]} -{"sent_id": [1, 2, 7, 15, 3, 13]} -{"sent_id": [1, 2, 13, 0, 5, 3]} -{"sent_id": [0, 3, 1, 4, 15, 2]} -{"sent_id": [1, 3, 2, 6, 4, 7]} -{"sent_id": [1, 2, 3, 5, 10, 13]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [0, 9, 4, 3, 1, 2]} -{"sent_id": [1, 4, 3, 9, 2, 13]} -{"sent_id": [2, 5, 9, 1, 6, 10]} -{"sent_id": [1, 0, 2, 10, 3, 15]} -{"sent_id": [0, 1, 3, 2, 4, 5]} -{"sent_id": [6, 8, 4, 5, 0, 9]} -{"sent_id": [3, 8, 1, 11, 10, 7]} -{"sent_id": [3, 9, 4, 1, 0, 17]} -{"sent_id": [3, 8, 5, 2, 4, 6]} -{"sent_id": [2, 4, 3, 14, 5, 6]} -{"sent_id": [4, 1, 2, 6, 3, 5]} -{"sent_id": [1, 2, 7, 6, 8, 5]} -{"sent_id": [9, 2, 3, 5, 4, 7]} -{"sent_id": [1, 3, 2, 5, 8, 6]} -{"sent_id": [1, 2, 3, 0, 5, 7]} -{"sent_id": [3, 1, 4, 2, 5, 12]} -{"sent_id": [2, 4, 7, 5, 0, 6]} -{"sent_id": [3, 0, 2, 1, 8, 4]} -{"sent_id": [3, 4, 1, 0, 16, 2]} -{"sent_id": [3, 5, 2, 8, 1, 16]} -{"sent_id": [0, 4, 3, 5, 1, 2]} -{"sent_id": [2, 4, 9, 1, 6, 11]} -{"sent_id": [0, 5, 13, 1, 11, 12]} -{"sent_id": [12, 4, 13, 3, 5, 7]} -{"sent_id": [9, 7, 1, 10, 3, 2]} -{"sent_id": [1, 3, 9, 2, 7, 0]} -{"sent_id": [3, 0, 1, 5, 2, 4]} -{"sent_id": [2, 1, 5, 6, 4, 9]} -{"sent_id": [1, 12, 0, 13, 8, 5]} -{"sent_id": [1, 8, 17, 18, 0, 4]} -{"sent_id": [1, 3, 8, 0, 4, 15]} -{"sent_id": [3, 2, 4, 14, 8, 9]} -{"sent_id": [2, 6, 1, 4, 5, 11]} -{"sent_id": [1, 0, 2, 5, 3, 10]} -{"sent_id": [2, 0, 11, 1, 4, 3]} -{"sent_id": [0, 18, 12, 13, 11, 16]} -{"sent_id": [15, 16, 0, 1, 17, 2]} -{"sent_id": [2, 3, 1, 0, 5, 7]} -{"sent_id": [1, 2, 10, 0, 7, 5]} -{"sent_id": [2, 3, 4, 5, 0, 8]} -{"sent_id": [1, 4, 2, 5, 9, 6]} -{"sent_id": [6, 9, 7, 19, 14, 16]} -{"sent_id": [3, 0, 4, 10, 11, 9]} -{"sent_id": [3, 14, 0, 2, 13, 4]} -{"sent_id": [3, 1, 2, 0, 5, 4]} -{"sent_id": [3, 11, 10, 2, 4, 5]} -{"sent_id": [0, 12, 2, 3, 1, 4]} -{"sent_id": [11, 2, 3, 1, 8, 13]} -{"sent_id": [1, 14, 2, 3, 4, 12]} -{"sent_id": [1, 2, 10, 8, 9, 0]} -{"sent_id": [1, 4, 3, 0, 2, 5]} -{"sent_id": [3, 6, 12, 2, 13, 7]} -{"sent_id": [0, 1, 7, 2, 4, 5]} -{"sent_id": [1, 5, 2, 3, 13, 4]} -{"sent_id": [1, 2, 0, 4, 18, 5]} -{"sent_id": [3, 1, 4, 2, 11, 6]} -{"sent_id": [1, 2, 3, 5, 7, 0]} -{"sent_id": [1, 2, 4, 0, 5, 7]} -{"sent_id": [1, 2, 25, 11, 6, 5]} -{"sent_id": [0, 2, 9, 13, 7, 15]} -{"sent_id": [1, 11, 2, 9, 6, 3]} -{"sent_id": [0, 5, 4, 3, 1, 6]} -{"sent_id": [2, 1, 11, 4, 3, 14]} -{"sent_id": [0, 2, 8, 4, 3, 1]} -{"sent_id": [0, 3, 1, 6, 5, 10]} -{"sent_id": [1, 4, 0, 8, 14, 2]} -{"sent_id": [0, 4, 3, 1, 2, 5]} -{"sent_id": [0, 3, 1, 12, 4, 2]} -{"sent_id": [7, 2, 3, 1, 6, 5]} -{"sent_id": [2, 3, 0, 1, 4, 5]} -{"sent_id": [1, 8, 6, 7, 16, 0]} -{"sent_id": [1, 2, 6, 7, 0, 4]} -{"sent_id": [2, 3, 0, 8, 1, 5]} -{"sent_id": [3, 1, 0, 5, 4, 6]} -{"sent_id": [3, 1, 10, 0, 18, 4]} -{"sent_id": [1, 6, 15, 2, 3, 5]} -{"sent_id": [6, 10, 0, 1, 7, 4]} -{"sent_id": [0, 5, 1, 13, 4, 3]} -{"sent_id": [6, 1, 2, 16, 13, 3]} -{"sent_id": [5, 3, 9, 6, 13, 2]} -{"sent_id": [1, 2, 11, 3, 6, 7]} -{"sent_id": [3, 1, 10, 2, 0, 4]} -{"sent_id": [2, 4, 10, 5, 3, 0]} -{"sent_id": [2, 0, 9, 1, 4, 3]} -{"sent_id": [1, 0, 14, 4, 13, 12]} -{"sent_id": [2, 3, 8, 11, 7, 6]} -{"sent_id": [3, 10, 4, 1, 0, 2]} -{"sent_id": [4, 1, 12, 6, 3, 0]} -{"sent_id": [4, 2, 12, 11, 7, 3]} -{"sent_id": [3, 0, 2, 1, 19, 14]} -{"sent_id": [1, 3, 0, 7, 5, 6]} -{"sent_id": [3, 10, 5, 2, 4, 11]} -{"sent_id": [1, 13, 8, 10, 6, 19]} -{"sent_id": [8, 4, 0, 1, 2, 3]} -{"sent_id": [3, 6, 2, 5, 1, 8]} -{"sent_id": [1, 4, 2, 3, 6, 8]} -{"sent_id": [3, 5, 2, 1, 6, 4]} -{"sent_id": [1, 2, 6, 8, 9, 5]} -{"sent_id": [1, 4, 3, 2, 0, 14]} -{"sent_id": [7, 11, 10, 12, 1, 0]} -{"sent_id": [1, 11, 0, 6, 3, 2]} -{"sent_id": [1, 2, 6, 7, 12, 9]} -{"sent_id": [3, 2, 1, 5, 12, 4]} -{"sent_id": [0, 3, 1, 4, 10, 2]} -{"sent_id": [5, 1, 10, 6, 8, 3]} -{"sent_id": [4, 2, 6, 3, 9, 1]} -{"sent_id": [3, 0, 1, 18, 2, 17]} -{"sent_id": [1, 3, 4, 7, 2, 13]} -{"sent_id": [3, 4, 8, 9, 5, 1]} -{"sent_id": [1, 0, 2, 5, 6, 4]} -{"sent_id": [1, 2, 7, 3, 8, 5]} -{"sent_id": [3, 0, 1, 4, 2, 11]} -{"sent_id": [0, 1, 3, 5, 2, 4]} -{"sent_id": [1, 0, 3, 2, 5, 11]} -{"sent_id": [7, 5, 8, 6, 3, 4]} -{"sent_id": [4, 5, 19, 6, 12, 21]} -{"sent_id": [1, 2, 3, 6, 0, 7]} -{"sent_id": [2, 8, 4, 17, 5, 16]} -{"sent_id": [2, 1, 0, 3, 4, 5]} -{"sent_id": [3, 1, 2, 8, 6, 7]} -{"sent_id": [1, 0, 6, 4, 3, 9]} -{"sent_id": [2, 6, 5, 7, 0, 11]} -{"sent_id": [3, 0, 1, 7, 2, 6]} -{"sent_id": [0, 1, 4, 2, 20, 3]} -{"sent_id": [3, 4, 0, 6, 1, 5]} -{"sent_id": [12, 1, 0, 7, 13, 9]} -{"sent_id": [3, 0, 4, 2, 1, 9]} -{"sent_id": [9, 10, 3, 0, 4, 1]} -{"sent_id": [0, 3, 4, 1, 2, 8]} -{"sent_id": [0, 1, 3, 4, 2, 7]} -{"sent_id": [1, 9, 5, 10, 4, 6]} -{"sent_id": [2, 1, 8, 0, 7, 9]} -{"sent_id": [1, 2, 4, 7, 0, 3]} -{"sent_id": [5, 1, 2, 3, 4, 10]} -{"sent_id": [1, 2, 5, 3, 16, 6]} -{"sent_id": [5, 10, 4, 9, 6, 8]} -{"sent_id": [1, 2, 9, 3, 13, 0]} -{"sent_id": [8, 4, 3, 2, 6, 11]} -{"sent_id": [1, 10, 3, 2, 4, 6]} -{"sent_id": [1, 3, 10, 2, 13, 0]} -{"sent_id": [1, 2, 5, 4, 7, 3]} -{"sent_id": [0, 13, 1, 3, 5, 4]} -{"sent_id": [1, 7, 0, 3, 6, 4]} -{"sent_id": [6, 7, 1, 0, 8, 4]} -{"sent_id": [1, 11, 0, 3, 10, 2]} -{"sent_id": [2, 4, 0, 3, 17, 1]} -{"sent_id": [4, 16, 0, 15, 2, 9]} -{"sent_id": [2, 3, 1, 4, 0, 7]} -{"sent_id": [1, 5, 2, 4, 13, 0]} -{"sent_id": [3, 1, 2, 8, 6, 0]} -{"sent_id": [2, 3, 18, 4, 8, 6]} -{"sent_id": [11, 0, 3, 1, 15, 12]} -{"sent_id": [1, 3, 4, 10, 2, 6]} -{"sent_id": [1, 4, 3, 2, 14, 0]} -{"sent_id": [3, 1, 5, 15, 19, 8]} -{"sent_id": [0, 2, 5, 3, 4, 14]} -{"sent_id": [3, 0, 10, 2, 1, 6]} -{"sent_id": [3, 12, 13, 2, 14, 1]} -{"sent_id": [13, 4, 5, 14, 2, 15]} -{"sent_id": [2, 0, 14, 3, 7, 12]} -{"sent_id": [0, 2, 1, 13, 14, 6]} -{"sent_id": [5, 2, 3, 1, 4, 8]} -{"sent_id": [3, 1, 4, 8, 5, 2]} -{"sent_id": [2, 4, 3, 1, 7, 5]} -{"sent_id": [0, 1, 2, 3, 4, 10]} -{"sent_id": [3, 2, 1, 9, 11, 10]} -{"sent_id": [3, 11, 0, 10, 17, 4]} -{"sent_id": [4, 3, 7, 0, 6, 2]} -{"sent_id": [2, 1, 0, 12, 4, 5]} -{"sent_id": [3, 1, 11, 0, 2, 12]} -{"sent_id": [1, 4, 3, 11, 10, 19]} -{"sent_id": [1, 3, 6, 2, 13, 7]} -{"sent_id": [1, 7, 3, 0, 2, 8]} -{"sent_id": [4, 2, 5, 14, 3, 0]} -{"sent_id": [4, 3, 2, 0, 5, 1]} -{"sent_id": [0, 8, 3, 4, 1, 5]} -{"sent_id": [1, 0, 4, 2, 5, 15]} -{"sent_id": [1, 12, 4, 2, 13, 3]} -{"sent_id": [4, 9, 2, 5, 7, 15]} -{"sent_id": [1, 2, 10, 9, 7, 15]} -{"sent_id": [4, 5, 6, 1, 2, 16]} -{"sent_id": [1, 3, 10, 2, 8, 14]} -{"sent_id": [1, 5, 2, 6, 11, 7]} -{"sent_id": [2, 1, 0, 15, 7, 4]} -{"sent_id": [5, 6, 1, 13, 0, 9]} -{"sent_id": [3, 13, 4, 0, 1, 2]} -{"sent_id": [2, 1, 0, 3, 11, 10]} -{"sent_id": [3, 2, 0, 1, 8, 12]} -{"sent_id": [1, 2, 5, 15, 4, 9]} -{"sent_id": [2, 3, 1, 4, 12, 13]} -{"sent_id": [3, 1, 0, 5, 10, 2]} -{"sent_id": [0, 3, 1, 9, 4, 2]} -{"sent_id": [7, 2, 3, 4, 6, 5]} -{"sent_id": [2, 6, 0, 1, 5, 13]} -{"sent_id": [3, 1, 13, 4, 0, 2]} -{"sent_id": [1, 2, 3, 0, 6, 4]} -{"sent_id": [2, 8, 4, 3, 1, 5]} -{"sent_id": [3, 4, 0, 1, 6, 5]} -{"sent_id": [7, 4, 13, 2, 9, 14]} -{"sent_id": [2, 0, 3, 1, 12, 11]} -{"sent_id": [1, 7, 8, 3, 6, 9]} -{"sent_id": [8, 1, 0, 2, 10, 14]} -{"sent_id": [2, 0, 1, 10, 12, 11]} -{"sent_id": [3, 4, 1, 11, 5, 10]} -{"sent_id": [1, 4, 5, 3, 14, 2]} -{"sent_id": [1, 5, 2, 3, 12, 4]} -{"sent_id": [1, 5, 0, 2, 4, 16]} -{"sent_id": [1, 5, 4, 3, 0, 10]} -{"sent_id": [0, 5, 1, 3, 4, 2]} -{"sent_id": [8, 3, 2, 4, 5, 6]} -{"sent_id": [2, 3, 4, 8, 15, 7]} -{"sent_id": [1, 4, 2, 3, 16, 5]} -{"sent_id": [2, 0, 3, 4, 5, 6]} -{"sent_id": [3, 8, 2, 1, 12, 13]} -{"sent_id": [2, 5, 4, 1, 6, 10]} -{"sent_id": [2, 4, 3, 11, 0, 1]} -{"sent_id": [0, 1, 3, 5, 2, 4]} -{"sent_id": [1, 2, 5, 3, 0, 4]} -{"sent_id": [14, 3, 1, 0, 6, 5]} -{"sent_id": [1, 2, 3, 9, 0, 4]} -{"sent_id": [3, 8, 1, 0, 2, 9]} -{"sent_id": [0, 4, 8, 2, 3, 5]} -{"sent_id": [2, 4, 1, 5, 6, 0]} -{"sent_id": [0, 1, 7, 2, 3, 4]} -{"sent_id": [1, 2, 4, 3, 7, 5]} -{"sent_id": [3, 0, 1, 11, 4, 2]} -{"sent_id": [9, 1, 15, 2, 0, 6]} -{"sent_id": [5, 4, 3, 6, 2, 8]} -{"sent_id": [3, 4, 5, 7, 11, 8]} -{"sent_id": [3, 5, 1, 4, 0, 2]} -{"sent_id": [5, 4, 2, 3, 15, 18]} -{"sent_id": [3, 5, 0, 2, 4, 12]} -{"sent_id": [3, 2, 1, 4, 5, 0]} -{"sent_id": [2, 12, 4, 13, 5, 3]} -{"sent_id": [1, 3, 4, 2, 12, 5]} -{"sent_id": [2, 0, 3, 4, 5, 17]} -{"sent_id": [3, 1, 0, 8, 4, 2]} -{"sent_id": [5, 1, 3, 6, 0, 7]} -{"sent_id": [1, 2, 3, 4, 13, 7]} -{"sent_id": [0, 1, 9, 4, 3, 8]} -{"sent_id": [2, 0, 5, 6, 3, 1]} -{"sent_id": [2, 1, 13, 3, 4, 14]} -{"sent_id": [0, 2, 3, 6, 7, 11]} -{"sent_id": [4, 3, 1, 2, 14, 5]} -{"sent_id": [2, 6, 10, 8, 4, 1]} -{"sent_id": [1, 0, 7, 3, 2, 5]} -{"sent_id": [2, 3, 4, 1, 5, 11]} -{"sent_id": [1, 4, 2, 19, 3, 5]} -{"sent_id": [0, 3, 1, 4, 2, 5]} -{"sent_id": [2, 3, 1, 0, 7, 6]} -{"sent_id": [1, 0, 3, 4, 5, 9]} -{"sent_id": [1, 2, 5, 8, 3, 0]} -{"sent_id": [1, 2, 7, 4, 0, 6]} -{"sent_id": [2, 0, 7, 8, 5, 1]} -{"sent_id": [6, 23, 8, 16, 5, 14]} -{"sent_id": [9, 5, 6, 11, 7, 0]} -{"sent_id": [2, 0, 10, 7, 3, 4]} -{"sent_id": [2, 3, 4, 5, 0, 11]} -{"sent_id": [1, 3, 2, 4, 0, 6]} -{"sent_id": [2, 5, 4, 1, 6, 3]} -{"sent_id": [9, 4, 3, 14, 2, 13]} -{"sent_id": [6, 5, 2, 1, 9, 4]} -{"sent_id": [6, 15, 5, 2, 17, 18]} -{"sent_id": [4, 1, 3, 14, 2, 0]} -{"sent_id": [1, 3, 4, 6, 2, 5]} -{"sent_id": [9, 0, 1, 4, 2, 10]} -{"sent_id": [1, 2, 5, 6, 12, 17]} -{"sent_id": [4, 3, 2, 12, 1, 0]} -{"sent_id": [3, 0, 1, 5, 6, 4]} -{"sent_id": [0, 4, 1, 3, 2, 10]} -{"sent_id": [2, 1, 6, 5, 7, 0]} -{"sent_id": [3, 9, 1, 0, 4, 2]} -{"sent_id": [1, 14, 4, 3, 2, 0]} -{"sent_id": [3, 4, 1, 5, 2, 11]} -{"sent_id": [2, 3, 1, 0, 13, 9]} -{"sent_id": [1, 9, 6, 0, 11, 10]} -{"sent_id": [10, 9, 1, 12, 7, 6]} -{"sent_id": [1, 3, 10, 6, 2, 0]} -{"sent_id": [1, 2, 8, 3, 9, 13]} -{"sent_id": [8, 7, 12, 9, 13, 20]} -{"sent_id": [14, 4, 0, 3, 5, 8]} -{"sent_id": [3, 11, 1, 7, 6, 2]} -{"sent_id": [1, 2, 15, 4, 14, 13]} -{"sent_id": [3, 5, 4, 6, 16, 7]} -{"sent_id": [4, 1, 5, 0, 3, 11]} -{"sent_id": [1, 2, 0, 5, 16, 6]} -{"sent_id": [1, 2, 8, 3, 13, 9]} -{"sent_id": [3, 1, 0, 5, 9, 2]} -{"sent_id": [1, 8, 4, 0, 2, 3]} -{"sent_id": [4, 5, 3, 0, 17, 6]} -{"sent_id": [1, 2, 0, 10, 6, 8]} -{"sent_id": [1, 2, 4, 15, 9, 13]} -{"sent_id": [0, 1, 7, 2, 5, 4]} -{"sent_id": [1, 2, 5, 0, 12, 16]} -{"sent_id": [1, 2, 3, 7, 6, 4]} -{"sent_id": [7, 6, 0, 8, 4, 5]} -{"sent_id": [1, 2, 4, 0, 5, 13]} -{"sent_id": [1, 2, 5, 0, 4, 11]} -{"sent_id": [3, 2, 1, 4, 14, 7]} -{"sent_id": [1, 2, 13, 9, 0, 4]} -{"sent_id": [5, 2, 11, 6, 10, 14]} -{"sent_id": [3, 10, 5, 7, 8, 13]} -{"sent_id": [6, 3, 10, 4, 7, 1]} -{"sent_id": [1, 2, 0, 8, 7, 15]} -{"sent_id": [5, 2, 0, 1, 4, 3]} -{"sent_id": [2, 1, 4, 0, 3, 6]} -{"sent_id": [1, 0, 8, 13, 7, 12]} -{"sent_id": [2, 1, 4, 3, 0, 8]} -{"sent_id": [2, 12, 5, 10, 4, 1]} -{"sent_id": [0, 1, 2, 10, 5, 7]} -{"sent_id": [3, 2, 4, 0, 5, 8]} -{"sent_id": [1, 2, 8, 4, 10, 5]} -{"sent_id": [4, 12, 2, 1, 3, 0]} -{"sent_id": [2, 15, 6, 0, 5, 3]} -{"sent_id": [5, 0, 4, 1, 3, 2]} -{"sent_id": [1, 2, 0, 9, 3, 10]} -{"sent_id": [5, 6, 9, 0, 11, 4]} -{"sent_id": [0, 1, 2, 3, 7, 4]} -{"sent_id": [2, 1, 5, 8, 0, 6]} -{"sent_id": [1, 13, 2, 4, 10, 3]} -{"sent_id": [1, 2, 4, 0, 9, 3]} -{"sent_id": [1, 3, 0, 2, 6, 8]} -{"sent_id": [2, 1, 0, 9, 7, 8]} -{"sent_id": [1, 3, 0, 5, 6, 2]} -{"sent_id": [3, 1, 11, 10, 13, 0]} -{"sent_id": [1, 2, 7, 5, 0, 4]} -{"sent_id": [0, 15, 16, 2, 1, 5]} -{"sent_id": [0, 1, 2, 3, 5, 4]} -{"sent_id": [2, 1, 10, 0, 7, 4]} -{"sent_id": [1, 7, 8, 3, 2, 4]} -{"sent_id": [5, 2, 1, 3, 0, 12]} -{"sent_id": [1, 2, 0, 14, 8, 17]} -{"sent_id": [5, 3, 1, 2, 9, 6]} -{"sent_id": [2, 3, 9, 1, 4, 0]} -{"sent_id": [7, 0, 3, 2, 1, 5]} -{"sent_id": [0, 1, 22, 5, 2, 4]} -{"sent_id": [3, 4, 2, 1, 5, 10]} -{"sent_id": [0, 1, 13, 3, 4, 7]} -{"sent_id": [0, 5, 4, 1, 3, 2]} -{"sent_id": [4, 3, 12, 14, 15, 7]} -{"sent_id": [0, 1, 4, 13, 9, 8]} -{"sent_id": [1, 2, 0, 3, 8, 4]} -{"sent_id": [1, 4, 2, 0, 7, 5]} -{"sent_id": [3, 1, 2, 0, 4, 5]} -{"sent_id": [0, 12, 2, 1, 16, 10]} -{"sent_id": [3, 9, 10, 2, 1, 12]} -{"sent_id": [3, 7, 1, 0, 8, 2]} -{"sent_id": [1, 2, 3, 0, 4, 5]} -{"sent_id": [3, 2, 1, 6, 0, 7]} -{"sent_id": [1, 3, 2, 4, 5, 12]} -{"sent_id": [1, 2, 5, 9, 3, 6]} -{"sent_id": [2, 0, 1, 3, 4]} -{"sent_id": [3, 1, 7, 5, 0, 4]} -{"sent_id": [2, 5, 0, 3, 4, 1]} -{"sent_id": [6, 7, 17, 1, 0, 2]} -{"sent_id": [1, 4, 7, 8, 2, 3]} -{"sent_id": [1, 5, 4, 2, 6, 16]} -{"sent_id": [0, 2, 1, 10, 5, 4]} -{"sent_id": [1, 2, 8, 0, 3, 5]} -{"sent_id": [3, 10, 1, 8, 6, 2]} -{"sent_id": [2, 0, 3, 4, 1, 18]} -{"sent_id": [1, 7, 5, 2, 0, 11]} -{"sent_id": [2, 3, 0, 15, 4, 10]} -{"sent_id": [4, 5, 16, 15, 1, 2]} -{"sent_id": [1, 3, 11, 2, 0, 6]} -{"sent_id": [1, 2, 15, 4, 8, 0]} -{"sent_id": [0, 3, 9, 6, 10, 1]} -{"sent_id": [1, 4, 2, 3, 12, 5]} -{"sent_id": [1, 2, 4, 3, 5, 11]} -{"sent_id": [1, 2, 4, 0, 11, 3]} -{"sent_id": [2, 1, 9, 5, 0, 13]} -{"sent_id": [2, 3, 8, 6, 5, 0]} -{"sent_id": [0, 1, 2, 15, 3, 5]} -{"sent_id": [2, 0, 1, 3, 6, 7]} -{"sent_id": [1, 3, 5, 0, 2, 4]} -{"sent_id": [2, 3, 10, 0, 5, 4]} -{"sent_id": [1, 2, 3, 0, 6, 10]} -{"sent_id": [3, 1, 2, 4, 8, 9]} -{"sent_id": [3, 0, 4, 2, 17, 6]} -{"sent_id": [3, 5, 4, 6, 11, 1]} -{"sent_id": [0, 6, 14, 1, 13, 5]} -{"sent_id": [0, 10, 3, 1, 4, 2]} -{"sent_id": [1, 4, 0, 14, 6, 2]} -{"sent_id": [1, 2, 0, 5, 7, 8]} -{"sent_id": [3, 8, 4, 2, 0, 5]} -{"sent_id": [4, 2, 12, 5, 13, 14]} -{"sent_id": [2, 5, 3, 6, 11, 8]} -{"sent_id": [4, 2, 1, 14, 3, 7]} -{"sent_id": [1, 5, 2, 7, 3, 4]} -{"sent_id": [2, 1, 4, 0, 5, 6]} -{"sent_id": [1, 3, 2, 6, 0, 5]} -{"sent_id": [2, 1, 4, 3, 6, 0]} -{"sent_id": [8, 4, 2, 3, 0, 1]} -{"sent_id": [3, 10, 2, 4, 5, 6]} -{"sent_id": [10, 3, 4, 0, 2, 1]} -{"sent_id": [1, 4, 10, 0, 7, 6]} -{"sent_id": [0, 2, 1, 7, 4, 14]} -{"sent_id": [3, 0, 1, 2, 5, 6]} -{"sent_id": [2, 1, 3, 4, 5, 8]} -{"sent_id": [3, 4, 9, 5, 6, 14]} -{"sent_id": [3, 4, 5, 9, 2, 10]} -{"sent_id": [1, 2, 8, 0, 3, 15]} -{"sent_id": [1, 4, 3, 2, 0, 10]} -{"sent_id": [4, 2, 12, 5, 3, 7]} -{"sent_id": [0, 1, 7, 8, 9, 2]} -{"sent_id": [3, 2, 4, 7, 12, 9]} -{"sent_id": [2, 1, 10, 12, 8, 5]} -{"sent_id": [3, 16, 1, 0, 4, 6]} -{"sent_id": [2, 4, 1, 6, 3, 5]} -{"sent_id": [2, 0, 3, 8, 1, 11]} -{"sent_id": [2, 4, 8, 1, 7, 6]} -{"sent_id": [9, 3, 12, 4, 16, 5]} -{"sent_id": [3, 8, 0, 7, 5, 2]} -{"sent_id": [1, 4, 3, 10, 5, 6]} -{"sent_id": [3, 0, 1, 2, 9, 5]} -{"sent_id": [4, 3, 5, 0, 8, 17]} -{"sent_id": [2, 3, 5, 0, 12, 4]} -{"sent_id": [1, 3, 6, 2, 5, 4]} -{"sent_id": [2, 1, 0, 5, 10, 3]} -{"sent_id": [2, 1, 9, 10, 3, 5]} -{"sent_id": [4, 3, 0, 9, 10, 7]} -{"sent_id": [1, 2, 6, 3, 5, 8]} -{"sent_id": [0, 9, 4, 7, 5, 3]} -{"sent_id": [4, 3, 5, 1, 9, 6]} -{"sent_id": [2, 3, 1, 14, 0, 4]} -{"sent_id": [3, 6, 5, 2, 12, 7]} -{"sent_id": [3, 0, 7, 1, 4, 6]} -{"sent_id": [11, 4, 9, 2, 5, 6]} -{"sent_id": [2, 3, 4, 16, 0, 5]} -{"sent_id": [3, 15, 7, 4, 0, 8]} -{"sent_id": [3, 1, 0, 7, 2, 5]} -{"sent_id": [2, 9, 0, 5, 12, 6]} -{"sent_id": [1, 2, 4, 5, 6, 0]} -{"sent_id": [1, 0, 12, 7, 15, 9]} -{"sent_id": [3, 4, 2, 5, 0, 7]} -{"sent_id": [1, 2, 0, 5, 12, 10]} -{"sent_id": [2, 1, 3, 4, 11, 9]} -{"sent_id": [0, 1, 8, 9, 7, 15]} -{"sent_id": [1, 3, 2, 12, 0, 4]} -{"sent_id": [3, 2, 1, 6, 0, 15]} -{"sent_id": [1, 4, 5, 2, 6, 3]} -{"sent_id": [4, 0, 1, 5, 7, 2]} -{"sent_id": [4, 1, 3, 2, 5, 6]} -{"sent_id": [0, 2, 1, 4, 13, 5]} -{"sent_id": [2, 3, 0, 1, 15, 9]} -{"sent_id": [1, 0, 4, 7, 3, 9]} -{"sent_id": [1, 0, 3, 10, 2, 7]} -{"sent_id": [1, 0, 5, 3, 11, 8]} -{"sent_id": [4, 10, 2, 3, 7, 14]} -{"sent_id": [1, 13, 2, 4, 3, 0]} -{"sent_id": [3, 6, 2, 1, 17, 13]} -{"sent_id": [3, 4, 0, 5, 1, 2]} -{"sent_id": [1, 7, 5, 11, 4, 0]} -{"sent_id": [5, 3, 1, 6, 2, 7]} -{"sent_id": [1, 4, 2, 7, 3, 6]} -{"sent_id": [2, 4, 3, 8, 5, 0]} -{"sent_id": [1, 2, 12, 6, 7, 8]} -{"sent_id": [4, 1, 5, 0, 9, 3]} -{"sent_id": [0, 4, 3, 12, 6, 8]} -{"sent_id": [5, 4, 7, 0, 1, 2]} -{"sent_id": [2, 8, 6, 3, 10, 5]} -{"sent_id": [1, 2, 3, 16, 5, 13]} -{"sent_id": [1, 0, 2, 4, 13, 6]} -{"sent_id": [1, 12, 3, 2, 0, 5]} -{"sent_id": [1, 4, 0, 2, 3, 15]} -{"sent_id": [1, 6, 2, 3, 7, 5]} -{"sent_id": [2, 4, 3, 0, 11, 1]} -{"sent_id": [4, 7, 5, 6, 0, 2]} -{"sent_id": [2, 11, 6, 4, 7, 8]} -{"sent_id": [1, 6, 0, 2, 3, 5]} -{"sent_id": [2, 3, 6, 9, 7, 8]} -{"sent_id": [3, 0, 5, 2, 1, 4]} -{"sent_id": [0, 2, 6, 1, 5, 7]} -{"sent_id": [4, 2, 1, 3, 12, 13]} -{"sent_id": [0, 4, 1, 5, 12, 3]} -{"sent_id": [1, 0, 15, 2, 13, 6]} -{"sent_id": [2, 4, 3, 0, 5, 1]} -{"sent_id": [1, 2, 0, 4, 3, 5]} -{"sent_id": [1, 2, 3, 8, 7, 6]} -{"sent_id": [0, 4, 3, 5, 2, 8]} -{"sent_id": [5, 2, 7, 6, 9, 11]} -{"sent_id": [2, 1, 3, 0, 4, 5]} -{"sent_id": [1, 2, 4, 0, 7, 6]} -{"sent_id": [1, 2, 10, 3, 4, 8]} -{"sent_id": [1, 4, 0, 2, 3, 5]} -{"sent_id": [3, 9, 4, 1, 0, 10]} -{"sent_id": [1, 3, 2, 7, 13, 5]} -{"sent_id": [10, 11, 16, 7, 12, 18]} -{"sent_id": [2, 1, 17, 14, 15, 13]} -{"sent_id": [0, 1, 13, 12, 2, 10]} -{"sent_id": [1, 3, 4, 8, 12, 2]} -{"sent_id": [1, 2, 3, 4, 6, 5]} -{"sent_id": [2, 1, 6, 5, 4, 0]} -{"sent_id": [1, 0, 3, 10, 4, 8]} -{"sent_id": [3, 9, 6, 0, 1, 8]} -{"sent_id": [1, 9, 2, 0, 18, 10]} -{"sent_id": [4, 3, 2, 5, 6, 1]} -{"sent_id": [5, 2, 4, 0, 3, 1]} -{"sent_id": [3, 13, 2, 6, 7, 4]} -{"sent_id": [2, 6, 12, 3, 11, 4]} -{"sent_id": [3, 1, 6, 4, 0, 2]} -{"sent_id": [2, 1, 4, 0, 10, 5]} -{"sent_id": [3, 0, 2, 1, 8, 7]} -{"sent_id": [1, 2, 4, 0, 13, 6]} -{"sent_id": [2, 1, 5, 10, 4, 3]} -{"sent_id": [3, 4, 18, 1, 2, 12]} -{"sent_id": [1, 0, 20, 12, 8, 7]} -{"sent_id": [3, 0, 4, 9, 2, 12]} -{"sent_id": [2, 1, 10, 3, 0, 6]} -{"sent_id": [1, 5, 8, 2, 7, 12]} -{"sent_id": [3, 5, 4, 6, 12, 1]} -{"sent_id": [3, 4, 7, 2, 6, 8]} -{"sent_id": [0, 4, 2, 9, 10, 1]} -{"sent_id": [4, 7, 3, 11, 0, 2]} -{"sent_id": [7, 1, 5, 0, 13, 4]} -{"sent_id": [1, 6, 2, 0, 5, 7]} -{"sent_id": [1, 2, 3, 4, 9, 10]} -{"sent_id": [3, 1, 4, 13, 14, 2]} -{"sent_id": [3, 4, 2, 1, 11, 5]} -{"sent_id": [2, 1, 3, 9, 8, 17]} -{"sent_id": [3, 2, 4, 1, 5, 6]} -{"sent_id": [1, 2, 10, 3, 0, 5]} -{"sent_id": [1, 2, 11, 10, 0, 12]} -{"sent_id": [3, 2, 0, 4, 5, 15]} -{"sent_id": [4, 0, 3, 15, 16, 5]} -{"sent_id": [4, 1, 5, 15, 11, 8]} -{"sent_id": [3, 1, 12, 11, 10, 2]} -{"sent_id": [8, 3, 10, 5, 4, 6]} -{"sent_id": [1, 3, 2, 15, 5, 6]} -{"sent_id": [2, 0, 1, 3, 5, 6]} -{"sent_id": [3, 4, 2, 5, 6, 11]} -{"sent_id": [0, 3, 1, 2, 4, 7]} -{"sent_id": [0, 5, 2, 1, 10, 4]} -{"sent_id": [0, 4, 8, 14, 6, 9]} -{"sent_id": [1, 0, 2, 4, 10, 11]} -{"sent_id": [0, 5, 6, 4, 7, 13]} -{"sent_id": [6, 7, 1, 16, 5, 3]} -{"sent_id": [1, 2, 3, 4, 5, 0]} -{"sent_id": [3, 1, 2, 4, 0, 7]} -{"sent_id": [0, 4, 17, 2, 12, 14]} -{"sent_id": [1, 0, 4, 3, 2, 10]} -{"sent_id": [0, 2, 1, 8, 4, 9]} -{"sent_id": [0, 3, 1, 9, 2, 4]} -{"sent_id": [4, 3, 1, 5, 12, 11]} -{"sent_id": [1, 0, 4, 8, 6, 9]} -{"sent_id": [3, 1, 2, 0, 18, 9]} -{"sent_id": [1, 4, 0, 7, 2, 6]} -{"sent_id": [4, 1, 7, 6, 2, 3]} -{"sent_id": [3, 4, 0, 6, 1, 7]} -{"sent_id": [3, 4, 15, 1, 16, 0]} -{"sent_id": [1, 3, 2, 4, 10, 0]} -{"sent_id": [3, 6, 4, 5, 11, 7]} -{"sent_id": [1, 2, 0, 11, 6, 10]} -{"sent_id": [3, 1, 2, 0, 6, 4]} -{"sent_id": [1, 3, 0, 4, 8, 9]} -{"sent_id": [1, 9, 4, 3, 7, 2]} -{"sent_id": [8, 4, 1, 5, 11, 0]} -{"sent_id": [1, 2, 3, 7, 9, 0]} -{"sent_id": [8, 0, 3, 5, 1, 2]} -{"sent_id": [13, 14, 0, 10, 3, 4]} -{"sent_id": [5, 1, 6, 2, 8, 9]} -{"sent_id": [3, 5, 4, 8, 2, 18]} -{"sent_id": [1, 2, 5, 12, 11, 0]} -{"sent_id": [5, 4, 18, 11, 9, 3]} -{"sent_id": [1, 5, 2, 7, 8, 6]} -{"sent_id": [5, 1, 2, 21, 7, 8]} -{"sent_id": [3, 1, 13, 0, 2, 4]} -{"sent_id": [5, 1, 3, 6, 2, 4]} -{"sent_id": [2, 9, 0, 11, 4, 8]} -{"sent_id": [4, 1, 7, 9, 14, 5]} -{"sent_id": [4, 2, 5, 3, 0, 9]} -{"sent_id": [1, 2, 3, 5, 7, 14]} -{"sent_id": [10, 2, 1, 9, 0, 8]} -{"sent_id": [1, 8, 4, 0, 6, 9]} -{"sent_id": [2, 0, 4, 11, 1, 7]} -{"sent_id": [2, 1, 0, 6, 3, 4]} -{"sent_id": [1, 0, 3, 11, 8, 13]} -{"sent_id": [4, 1, 2, 0, 10, 3]} -{"sent_id": [1, 2, 4, 6, 3, 5]} -{"sent_id": [3, 1, 2, 7, 0, 5]} -{"sent_id": [2, 0, 3, 5, 6, 4]} -{"sent_id": [1, 7, 8, 6, 3, 0]} -{"sent_id": [0, 1, 12, 13, 10, 7]} -{"sent_id": [1, 2, 8, 3, 6, 7]} -{"sent_id": [0, 4, 7, 6, 2, 1]} -{"sent_id": [4, 5, 0, 3, 6, 14]} -{"sent_id": [2, 4, 0, 3, 5, 7]} -{"sent_id": [2, 4, 7, 5, 1, 10]} -{"sent_id": [3, 4, 11, 15, 5, 0]} -{"sent_id": [3, 1, 10, 2, 9, 15]} -{"sent_id": [4, 5, 7, 1, 14, 10]} -{"sent_id": [3, 4, 2, 6, 5, 1]} -{"sent_id": [3, 2, 6, 5, 7, 20]} -{"sent_id": [1, 2, 5, 6, 4, 3]} -{"sent_id": [3, 8, 4, 5, 13, 2]} -{"sent_id": [7, 2, 1, 3, 9, 15]} -{"sent_id": [0, 2, 5, 1, 8, 9]} -{"sent_id": [3, 0, 2, 4, 6, 1]} -{"sent_id": [0, 2, 5, 7, 4, 1]} -{"sent_id": [4, 12, 2, 1, 3, 13]} -{"sent_id": [1, 2, 0, 5, 6, 3]} -{"sent_id": [11, 6, 7, 0, 2, 1]} -{"sent_id": [3, 2, 11, 8, 0, 21]} -{"sent_id": [1, 7, 8, 0, 5, 2]} -{"sent_id": [2, 0, 9, 1, 11, 10]} -{"sent_id": [3, 0, 7, 4, 2, 12]} -{"sent_id": [2, 9, 3, 0, 5, 1]} -{"sent_id": [1, 4, 3, 6, 2, 5]} -{"sent_id": [14, 0, 15, 2, 1, 21]} -{"sent_id": [3, 4, 0, 6, 1, 2]} -{"sent_id": [9, 3, 5, 8, 7, 1]} -{"sent_id": [2, 0, 3, 8, 14, 13]} -{"sent_id": [1, 2, 3, 0, 16, 14]} -{"sent_id": [4, 2, 1, 3, 6, 14]} -{"sent_id": [0, 1, 2, 7, 8, 6]} -{"sent_id": [1, 2, 3, 4, 16, 6]} -{"sent_id": [4, 2, 13, 5, 1, 0]} -{"sent_id": [6, 9, 20, 4, 19, 5]} -{"sent_id": [1, 3, 6, 19, 4, 17]} -{"sent_id": [1, 4, 2, 5, 14, 0]} -{"sent_id": [5, 12, 7, 13, 4, 15]} -{"sent_id": [4, 2, 3, 5, 9, 1]} -{"sent_id": [1, 2, 7, 0, 3, 16]} -{"sent_id": [3, 1, 4, 9, 16, 10]} -{"sent_id": [6, 0, 15, 11, 1, 4]} -{"sent_id": [3, 2, 8, 6, 7, 9]} -{"sent_id": [2, 5, 6, 13, 3, 14]} -{"sent_id": [0, 2, 1, 3, 5, 4]} -{"sent_id": [3, 1, 12, 17, 2, 4]} -{"sent_id": [1, 0, 2, 3, 6, 17]} -{"sent_id": [5, 2, 4, 3, 7, 6]} -{"sent_id": [1, 4, 2, 5, 13, 7]} -{"sent_id": [0, 12, 7, 13, 2, 4]} -{"sent_id": [3, 1, 0, 15, 4, 2]} -{"sent_id": [0, 3, 5, 1, 4, 7]} -{"sent_id": [1, 3, 2, 12, 4, 0]} -{"sent_id": [0, 3, 1, 2, 8, 10]} -{"sent_id": [0, 2, 1, 4, 11, 5]} -{"sent_id": [1, 2, 3, 6, 0, 12]} -{"sent_id": [2, 4, 15, 3, 8, 11]} -{"sent_id": [6, 10, 11, 14, 3, 2]} -{"sent_id": [1, 2, 9, 10, 6, 3]} -{"sent_id": [6, 7, 10, 1, 13, 3]} -{"sent_id": [3, 1, 2, 4, 11, 5]} -{"sent_id": [11, 1, 0, 16, 2, 14]} -{"sent_id": [3, 5, 4, 20, 2, 8]} -{"sent_id": [3, 1, 12, 0, 5, 2]} -{"sent_id": [2, 3, 1, 4, 0, 7]} -{"sent_id": [3, 4, 1, 2, 6, 0]} -{"sent_id": [12, 4, 3, 2, 5, 1]} -{"sent_id": [0, 3, 2, 1, 7, 16]} -{"sent_id": [0, 1, 2, 10, 3, 9]} -{"sent_id": [1, 0, 2, 5, 3, 11]} -{"sent_id": [1, 2, 0, 3, 8, 11]} -{"sent_id": [3, 2, 4, 6, 19, 5]} -{"sent_id": [2, 9, 1, 0, 4, 6]} -{"sent_id": [0, 1, 2, 10, 3, 4]} -{"sent_id": [13, 3, 4, 2, 12, 1]} -{"sent_id": [9, 13, 0, 3, 4, 1]} -{"sent_id": [2, 3, 0, 1, 9, 4]} -{"sent_id": [2, 0, 7, 1, 11, 3]} -{"sent_id": [8, 13, 9, 1, 7, 11]} -{"sent_id": [13, 1, 4, 0, 14, 2]} -{"sent_id": [0, 11, 1, 9, 2, 7]} -{"sent_id": [0, 4, 5, 11, 1, 3]} -{"sent_id": [2, 1, 3, 5, 4, 9]} -{"sent_id": [13, 2, 6, 1, 0, 11]} -{"sent_id": [3, 1, 8, 0, 4, 5]} -{"sent_id": [2, 0, 1, 15, 7, 4]} -{"sent_id": [3, 5, 2, 1, 7, 0]} -{"sent_id": [1, 0, 4, 5, 10, 16]} -{"sent_id": [3, 4, 5, 0, 14, 1]} -{"sent_id": [0, 2, 3, 5, 1, 4]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [2, 7, 3, 13, 10, 8]} -{"sent_id": [1, 2, 6, 5, 8, 14]} -{"sent_id": [4, 5, 13, 7, 17, 0]} -{"sent_id": [1, 5, 4, 6, 0, 3]} -{"sent_id": [20, 13, 14, 9, 18, 10]} -{"sent_id": [1, 5, 0, 2, 3, 6]} -{"sent_id": [3, 2, 1, 12, 17, 6]} -{"sent_id": [2, 11, 3, 0, 9, 14]} -{"sent_id": [0, 3, 2, 6, 4, 1]} -{"sent_id": [1, 3, 0, 9, 7, 4]} -{"sent_id": [2, 3, 5, 4, 0, 14]} -{"sent_id": [9, 2, 3, 1, 11, 0]} -{"sent_id": [1, 2, 11, 7, 8, 12]} -{"sent_id": [3, 4, 10, 0, 2, 7]} -{"sent_id": [2, 1, 6, 0, 3, 7]} -{"sent_id": [5, 19, 20, 0, 17, 2]} -{"sent_id": [3, 5, 1, 12, 7, 10]} -{"sent_id": [2, 3, 8, 4, 5, 0]} -{"sent_id": [0, 3, 4, 2, 5, 10]} -{"sent_id": [0, 6, 1, 3, 4, 2]} -{"sent_id": [1, 2, 3, 4, 0, 6]} -{"sent_id": [1, 3, 4, 0, 10, 11]} -{"sent_id": [1, 3, 2, 10, 11, 9]} -{"sent_id": [8, 3, 13, 1, 0, 2]} -{"sent_id": [1, 4, 8, 2, 3, 13]} -{"sent_id": [3, 2, 0, 4, 6, 1]} -{"sent_id": [3, 1, 11, 4, 8, 9]} -{"sent_id": [4, 2, 1, 3, 7, 0]} -{"sent_id": [1, 2, 9, 10, 6, 12]} -{"sent_id": [3, 4, 15, 1, 9, 16]} -{"sent_id": [0, 1, 3, 2, 17, 10]} -{"sent_id": [1, 2, 4, 6, 7, 0]} -{"sent_id": [3, 0, 4, 2, 9, 1]} -{"sent_id": [3, 2, 0, 7, 4, 9]} -{"sent_id": [5, 2, 0, 1, 8, 4]} -{"sent_id": [0, 3, 1, 2, 10, 4]} -{"sent_id": [3, 0, 4, 2, 11, 8]} -{"sent_id": [1, 7, 2, 3, 0, 5]} -{"sent_id": [7, 10, 2, 16, 6, 3]} -{"sent_id": [1, 4, 0, 2, 3, 5]} -{"sent_id": [4, 0, 3, 7, 5, 6]} -{"sent_id": [3, 0, 16, 2, 1, 10]} -{"sent_id": [2, 13, 0, 17, 1, 7]} -{"sent_id": [2, 3, 4, 6, 0, 5]} -{"sent_id": [1, 3, 5, 4, 2, 6]} -{"sent_id": [11, 4, 3, 2, 12, 7]} -{"sent_id": [0, 4, 1, 2, 3, 5]} -{"sent_id": [1, 8, 2, 4, 6, 0]} -{"sent_id": [3, 4, 10, 2, 1, 9]} -{"sent_id": [1, 2, 5, 12, 0, 4]} -{"sent_id": [1, 3, 2, 5, 9, 7]} -{"sent_id": [2, 6, 0, 10, 9, 7]} -{"sent_id": [3, 6, 5, 4, 8, 7]} -{"sent_id": [3, 0, 2, 5, 1, 11]} -{"sent_id": [2, 1, 4, 7, 5, 0]} -{"sent_id": [2, 1, 0, 6, 5, 10]} -{"sent_id": [3, 2, 20, 11, 1, 0]} -{"sent_id": [1, 2, 4, 0, 15, 3]} -{"sent_id": [6, 1, 2, 0, 3, 13]} -{"sent_id": [3, 2, 4, 0, 1, 14]} -{"sent_id": [3, 6, 5, 9, 4, 15]} -{"sent_id": [1, 0, 7, 4, 5, 2]} -{"sent_id": [1, 4, 2, 6, 12, 11]} -{"sent_id": [3, 2, 4, 6, 5, 9]} -{"sent_id": [2, 1, 3, 7, 6, 8]} -{"sent_id": [2, 14, 9, 15, 12, 1]} -{"sent_id": [14, 13, 4, 1, 2, 6]} -{"sent_id": [0, 4, 3, 1, 2]} -{"sent_id": [3, 2, 4, 1, 8, 10]} -{"sent_id": [0, 2, 1, 3, 4, 7]} -{"sent_id": [2, 0, 4, 1, 5, 8]} -{"sent_id": [1, 0, 3, 4, 2, 7]} -{"sent_id": [1, 3, 2, 12, 4, 0]} -{"sent_id": [1, 0, 2, 3, 10, 5]} -{"sent_id": [1, 2, 0, 5, 6, 7]} -{"sent_id": [1, 2, 9, 0, 6, 8]} -{"sent_id": [1, 4, 2, 3, 6, 8]} -{"sent_id": [2, 3, 5, 9, 1, 11]} -{"sent_id": [2, 10, 1, 3, 5, 4]} -{"sent_id": [3, 2, 1, 13, 4, 7]} -{"sent_id": [1, 5, 2, 18, 3, 0]} -{"sent_id": [3, 7, 0, 6, 2, 10]} -{"sent_id": [2, 1, 4, 5, 9, 11]} -{"sent_id": [0, 2, 10, 1, 3, 4]} -{"sent_id": [2, 3, 1, 10, 6, 11]} -{"sent_id": [0, 3, 1, 4, 12, 2]} -{"sent_id": [1, 4, 3, 2, 6, 18]} -{"sent_id": [1, 16, 4, 2, 0, 3]} -{"sent_id": [3, 1, 5, 0, 6, 9]} -{"sent_id": [1, 2, 4, 3, 0, 6]} -{"sent_id": [3, 4, 1, 2, 0, 6]} -{"sent_id": [2, 3, 5, 4, 7, 6]} -{"sent_id": [1, 0, 15, 10, 2, 7]} -{"sent_id": [0, 5, 3, 4, 18, 6]} -{"sent_id": [3, 2, 8, 1, 0, 9]} -{"sent_id": [2, 4, 18, 16, 5, 15]} -{"sent_id": [3, 2, 1, 10, 8, 5]} -{"sent_id": [1, 0, 3, 4, 10, 9]} -{"sent_id": [3, 1, 4, 2, 6, 7]} -{"sent_id": [2, 3, 6, 7, 1, 0]} -{"sent_id": [0, 8, 3, 16, 2, 13]} -{"sent_id": [2, 4, 15, 0, 3, 14]} -{"sent_id": [1, 2, 7, 10, 9, 0]} -{"sent_id": [6, 0, 5, 11, 1, 4]} -{"sent_id": [1, 2, 14, 3, 0, 5]} -{"sent_id": [3, 8, 0, 1, 2, 4]} -{"sent_id": [2, 3, 0, 6, 14, 8]} -{"sent_id": [3, 2, 1, 12, 17, 7]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [3, 14, 11, 12, 4, 7]} -{"sent_id": [0, 2, 1, 9, 15, 3]} -{"sent_id": [1, 2, 3, 15, 7, 0]} -{"sent_id": [1, 3, 0, 2, 5, 7]} -{"sent_id": [4, 5, 10, 11, 17, 2]} -{"sent_id": [1, 7, 2, 3, 8, 9]} -{"sent_id": [7, 14, 6, 15, 8, 16]} -{"sent_id": [14, 1, 0, 4, 6, 5]} -{"sent_id": [1, 4, 12, 2, 3, 8]} -{"sent_id": [5, 7, 16, 6, 1, 19]} -{"sent_id": [2, 1, 3, 10, 11, 4]} -{"sent_id": [15, 7, 3, 4, 0, 5]} -{"sent_id": [2, 7, 10, 16, 1, 4]} -{"sent_id": [0, 5, 6, 3, 1, 2]} -{"sent_id": [0, 1, 5, 6, 7, 3]} -{"sent_id": [3, 0, 5, 2, 1, 7]} -{"sent_id": [1, 4, 8, 5, 2, 3]} -{"sent_id": [1, 3, 4, 5, 2, 0]} -{"sent_id": [4, 1, 0, 5, 3, 2]} -{"sent_id": [5, 6, 12, 4, 13, 10]} -{"sent_id": [1, 2, 5, 11, 3, 0]} -{"sent_id": [3, 1, 13, 12, 11, 5]} -{"sent_id": [0, 12, 1, 3, 13, 4]} -{"sent_id": [2, 9, 0, 1, 4, 5]} -{"sent_id": [4, 9, 1, 5, 7, 3]} -{"sent_id": [1, 14, 3, 2, 0, 8]} -{"sent_id": [4, 2, 0, 3, 7, 1]} -{"sent_id": [0, 15, 2, 1, 6, 7]} -{"sent_id": [0, 3, 2, 7, 1, 12]} -{"sent_id": [3, 4, 5, 8, 7, 6]} -{"sent_id": [1, 2, 7, 3, 9, 6]} -{"sent_id": [0, 7, 2, 1, 12, 4]} -{"sent_id": [1, 3, 0, 2, 10, 14]} -{"sent_id": [2, 1, 5, 0, 4, 6]} -{"sent_id": [3, 1, 0, 10, 16, 2]} -{"sent_id": [2, 4, 1, 8, 7, 0]} -{"sent_id": [3, 1, 2, 12, 4, 5]} -{"sent_id": [2, 1, 5, 9, 3, 8]} -{"sent_id": [2, 1, 3, 6, 4, 8]} -{"sent_id": [4, 12, 1, 3, 2, 11]} -{"sent_id": [2, 1, 3, 12, 5, 8]} -{"sent_id": [0, 1, 2, 4, 13, 3]} -{"sent_id": [6, 15, 4, 3, 18, 11]} -{"sent_id": [3, 10, 17, 5, 0, 6]} -{"sent_id": [0, 1, 8, 4, 2, 13]} -{"sent_id": [3, 2, 1, 0, 13, 4]} -{"sent_id": [4, 0, 12, 3, 1, 2]} -{"sent_id": [3, 5, 1, 4, 0, 2]} -{"sent_id": [3, 15, 4, 0, 6, 11]} -{"sent_id": [3, 1, 2, 12, 0, 11]} -{"sent_id": [1, 8, 7, 0, 3, 2]} -{"sent_id": [1, 8, 10, 2, 0, 5]} -{"sent_id": [1, 2, 3, 5, 8, 0]} -{"sent_id": [1, 4, 2, 3, 13, 8]} -{"sent_id": [2, 1, 3, 4, 0, 8]} -{"sent_id": [1, 2, 6, 5, 0, 4]} -{"sent_id": [6, 0, 5, 4, 2, 3]} -{"sent_id": [16, 5, 0, 10, 12, 3]} -{"sent_id": [3, 2, 5, 6, 7, 4]} -{"sent_id": [4, 10, 9, 2, 18, 6]} -{"sent_id": [3, 4, 10, 1, 2, 5]} -{"sent_id": [1, 2, 4, 6, 5, 7]} -{"sent_id": [5, 12, 0, 1, 2, 3]} -{"sent_id": [14, 0, 2, 1, 4, 7]} -{"sent_id": [3, 0, 1, 2, 5, 7]} -{"sent_id": [2, 0, 5, 8, 3, 11]} -{"sent_id": [3, 2, 8, 0, 1, 5]} -{"sent_id": [3, 4, 1, 10, 5, 0]} -{"sent_id": [0, 3, 1, 2, 4, 15]} -{"sent_id": [3, 5, 1, 4, 11, 12]} -{"sent_id": [2, 3, 4, 9, 1, 7]} -{"sent_id": [4, 0, 13, 1, 5, 2]} -{"sent_id": [3, 2, 12, 5, 4, 9]} -{"sent_id": [1, 9, 4, 2, 3, 8]} -{"sent_id": [0, 3, 8, 4, 7, 2]} -{"sent_id": [1, 2, 8, 3, 5, 11]} -{"sent_id": [3, 0, 1, 4, 2, 14]} -{"sent_id": [5, 10, 0, 6, 13, 1]} -{"sent_id": [3, 1, 2, 4, 0, 6]} -{"sent_id": [4, 1, 2, 3, 6, 10]} -{"sent_id": [1, 0, 5, 8, 4, 3]} -{"sent_id": [2, 1, 0, 13, 5, 6]} -{"sent_id": [4, 2, 5, 17, 19, 1]} -{"sent_id": [2, 1, 6, 5, 3, 4]} -{"sent_id": [2, 0, 1, 3, 4]} -{"sent_id": [0, 9, 1, 4, 2, 5]} -{"sent_id": [10, 2, 3, 4, 1, 5]} -{"sent_id": [0, 2, 1, 4, 6, 5]} -{"sent_id": [6, 0, 4, 3, 2, 8]} -{"sent_id": [0, 3, 4, 2, 1, 8]} -{"sent_id": [1, 5, 0, 2, 3, 6]} -{"sent_id": [2, 1, 6, 5, 3, 4]} -{"sent_id": [0, 1, 7, 2, 5, 6]} -{"sent_id": [2, 3, 4, 8, 7, 0]} -{"sent_id": [1, 5, 2, 15, 3, 7]} -{"sent_id": [2, 3, 8, 11, 9, 0]} -{"sent_id": [2, 6, 7, 4, 5, 3]} -{"sent_id": [3, 2, 1, 11, 5, 6]} -{"sent_id": [2, 3, 1, 10, 0, 4]} -{"sent_id": [3, 2, 5, 13, 15, 4]} -{"sent_id": [1, 2, 7, 0, 5, 8]} -{"sent_id": [1, 3, 8, 5, 2, 10]} -{"sent_id": [0, 1, 4, 3, 2, 14]} -{"sent_id": [0, 1, 2, 11, 3, 8]} -{"sent_id": [4, 9, 16, 10, 13, 1]} -{"sent_id": [2, 3, 0, 10, 16, 15]} -{"sent_id": [0, 6, 5, 12, 10, 9]} -{"sent_id": [1, 2, 5, 14, 8, 9]} -{"sent_id": [2, 1, 0, 4, 6, 5]} -{"sent_id": [0, 9, 8, 1, 3, 2]} -{"sent_id": [1, 2, 8, 7, 4, 6]} -{"sent_id": [2, 11, 12, 3, 0, 9]} -{"sent_id": [1, 4, 2, 6, 11, 5]} -{"sent_id": [11, 2, 3, 7, 4, 0]} -{"sent_id": [1, 2, 4, 8, 6, 5]} -{"sent_id": [0, 4, 14, 2, 1, 9]} -{"sent_id": [3, 1, 0, 4, 10, 9]} -{"sent_id": [3, 1, 6, 4, 2, 18]} -{"sent_id": [1, 2, 5, 4, 9, 6]} -{"sent_id": [1, 2, 5, 10, 9, 3]} -{"sent_id": [1, 2, 3, 14, 5, 4]} -{"sent_id": [3, 2, 4, 6, 1, 14]} -{"sent_id": [3, 1, 2, 12, 4, 0]} -{"sent_id": [3, 1, 2, 9, 4, 13]} -{"sent_id": [1, 3, 2, 5, 8, 0]} -{"sent_id": [4, 1, 6, 18, 5, 3]} -{"sent_id": [5, 6, 2, 3, 15, 16]} -{"sent_id": [1, 4, 14, 15, 10, 0]} -{"sent_id": [0, 4, 8, 2, 3, 10]} -{"sent_id": [5, 8, 0, 2, 4, 1]} -{"sent_id": [0, 5, 2, 3, 8, 13]} -{"sent_id": [1, 3, 0, 2, 4, 11]} -{"sent_id": [1, 8, 0, 4, 2, 7]} -{"sent_id": [3, 4, 10, 0, 5, 6]} -{"sent_id": [1, 2, 3, 5, 4, 10]} -{"sent_id": [4, 3, 0, 1, 5, 7]} -{"sent_id": [1, 6, 3, 5, 4, 0]} -{"sent_id": [3, 8, 1, 6, 0, 11]} -{"sent_id": [2, 1, 3, 4, 12, 10]} -{"sent_id": [0, 1, 5, 2, 4, 11]} -{"sent_id": [1, 3, 2, 5, 0, 4]} -{"sent_id": [1, 0, 16, 13, 3, 12]} -{"sent_id": [1, 2, 8, 3, 6, 4]} -{"sent_id": [5, 2, 3, 6, 9, 8]} -{"sent_id": [1, 4, 3, 2, 8, 5]} -{"sent_id": [0, 1, 5, 4, 3, 2]} -{"sent_id": [0, 12, 3, 5, 2, 1]} -{"sent_id": [0, 9, 1, 3, 4, 2]} -{"sent_id": [4, 3, 8, 0, 6, 2]} -{"sent_id": [0, 5, 7, 6, 11, 4]} -{"sent_id": [3, 4, 17, 5, 11, 2]} -{"sent_id": [1, 0, 14, 10, 7, 11]} -{"sent_id": [3, 13, 14, 1, 2, 7]} -{"sent_id": [1, 2, 6, 4, 5, 0]} -{"sent_id": [3, 2, 4, 7, 5, 1]} -{"sent_id": [0, 2, 9, 6, 4, 3]} -{"sent_id": [4, 2, 3, 1, 7, 0]} -{"sent_id": [1, 6, 0, 2, 4, 3]} -{"sent_id": [2, 0, 3, 12, 4, 11]} -{"sent_id": [1, 4, 0, 2, 10, 3]} -{"sent_id": [1, 4, 9, 5, 2, 3]} -{"sent_id": [3, 18, 0, 2, 6, 5]} -{"sent_id": [1, 3, 4, 2, 10, 5]} -{"sent_id": [1, 5, 3, 2, 8, 4]} -{"sent_id": [1, 0, 2, 9, 7, 5]} -{"sent_id": [2, 5, 4, 3, 24, 16]} -{"sent_id": [0, 9, 7, 3, 1, 12]} -{"sent_id": [2, 0, 3, 11, 12, 7]} -{"sent_id": [1, 3, 0, 4, 2, 14]} -{"sent_id": [3, 5, 4, 8, 16, 11]} -{"sent_id": [0, 2, 11, 1, 9, 8]} -{"sent_id": [1, 0, 2, 3, 11, 7]} -{"sent_id": [2, 3, 7, 4, 1, 0]} -{"sent_id": [2, 3, 5, 4, 1, 0]} -{"sent_id": [2, 3, 12, 1, 0, 9]} -{"sent_id": [1, 3, 9, 0, 2, 4]} -{"sent_id": [1, 2, 9, 6, 7, 8]} -{"sent_id": [2, 4, 0, 3, 10, 9]} -{"sent_id": [0, 2, 8, 1, 3, 10]} -{"sent_id": [1, 13, 9, 3, 7, 2]} -{"sent_id": [1, 19, 4, 12, 0, 2]} -{"sent_id": [4, 15, 1, 3, 12, 10]} -{"sent_id": [4, 5, 8, 3, 6, 2]} -{"sent_id": [0, 15, 2, 9, 1, 14]} -{"sent_id": [4, 5, 1, 3, 9, 13]} -{"sent_id": [3, 14, 1, 4, 2, 5]} -{"sent_id": [3, 0, 4, 5, 1, 2]} -{"sent_id": [2, 1, 9, 6, 0, 17]} -{"sent_id": [1, 9, 2, 8, 0, 5]} -{"sent_id": [2, 0, 6, 15, 5, 7]} -{"sent_id": [8, 0, 1, 4, 2, 12]} -{"sent_id": [0, 2, 3, 4, 9, 10]} -{"sent_id": [0, 3, 4, 1, 2, 7]} -{"sent_id": [4, 2, 11, 12, 6, 3]} -{"sent_id": [4, 3, 1, 2, 12, 5]} -{"sent_id": [3, 10, 7, 8, 13, 2]} -{"sent_id": [4, 1, 3, 0, 6, 8]} -{"sent_id": [2, 0, 3, 4, 12, 7]} -{"sent_id": [3, 2, 9, 4, 1, 6]} -{"sent_id": [1, 5, 3, 0, 2, 10]} -{"sent_id": [3, 4, 0, 8, 5, 1]} -{"sent_id": [0, 10, 1, 15, 12, 2]} -{"sent_id": [3, 1, 2, 4, 5, 10]} -{"sent_id": [1, 8, 2, 0, 6, 17]} -{"sent_id": [0, 1, 12, 3, 8, 6]} -{"sent_id": [3, 1, 7, 4, 18, 6]} -{"sent_id": [6, 2, 10, 5, 0, 1]} -{"sent_id": [5, 1, 9, 0, 2, 6]} -{"sent_id": [1, 3, 12, 7, 9, 0]} -{"sent_id": [6, 15, 2, 11, 9, 12]} -{"sent_id": [1, 2, 7, 11, 0, 21]} -{"sent_id": [4, 5, 2, 11, 1, 6]} -{"sent_id": [3, 2, 1, 16, 17, 0]} -{"sent_id": [0, 6, 3, 11, 12, 5]} -{"sent_id": [3, 4, 5, 0, 1, 10]} -{"sent_id": [7, 1, 9, 20, 14, 10]} -{"sent_id": [1, 2, 19, 18, 5, 17]} -{"sent_id": [18, 7, 0, 15, 12, 4]} -{"sent_id": [1, 17, 2, 5, 4, 10]} -{"sent_id": [1, 2, 6, 0, 9, 5]} -{"sent_id": [1, 2, 3, 4, 9, 0]} -{"sent_id": [2, 1, 11, 3, 0, 6]} -{"sent_id": [1, 4, 2, 5, 7, 6]} -{"sent_id": [8, 2, 4, 3, 6, 5]} -{"sent_id": [3, 10, 4, 2, 8, 6]} -{"sent_id": [5, 3, 16, 1, 2, 17]} -{"sent_id": [1, 2, 3, 6, 8, 5]} -{"sent_id": [1, 0, 2, 3, 13, 4]} -{"sent_id": [0, 3, 4, 16, 11, 1]} -{"sent_id": [1, 9, 2, 3, 4, 10]} -{"sent_id": [1, 15, 10, 5, 4, 2]} -{"sent_id": [4, 0, 12, 1, 5, 11]} -{"sent_id": [3, 1, 7, 5, 10, 2]} -{"sent_id": [8, 3, 10, 18, 6, 2]} -{"sent_id": [3, 10, 2, 0, 1, 4]} -{"sent_id": [1, 4, 5, 3, 2, 0]} -{"sent_id": [2, 1, 4, 3, 5, 6]} -{"sent_id": [3, 4, 2, 0, 11, 9]} -{"sent_id": [1, 0, 2, 12, 11, 5]} -{"sent_id": [8, 3, 6, 5, 2, 9]} -{"sent_id": [4, 1, 2, 7, 3, 0]} -{"sent_id": [3, 0, 2, 1, 8, 9]} -{"sent_id": [5, 0, 2, 4, 3, 6]} -{"sent_id": [3, 0, 14, 17, 4, 11]} -{"sent_id": [1, 2, 3, 11, 16, 5]} -{"sent_id": [2, 1, 3, 0, 5, 4]} -{"sent_id": [1, 2, 13, 14, 3, 5]} -{"sent_id": [4, 1, 2, 5, 3, 12]} -{"sent_id": [4, 3, 0, 2, 1, 19]} -{"sent_id": [0, 1, 2, 5, 6, 11]} -{"sent_id": [0, 4, 3, 2, 1, 8]} -{"sent_id": [3, 2, 1, 13, 10, 12]} -{"sent_id": [4, 1, 3, 6, 9, 2]} -{"sent_id": [1, 3, 0, 7, 2, 11]} -{"sent_id": [8, 0, 3, 6, 4, 1]} -{"sent_id": [3, 2, 1, 5, 0, 7]} -{"sent_id": [2, 3, 6, 1, 4, 5]} -{"sent_id": [1, 2, 5, 6, 3, 4]} -{"sent_id": [0, 11, 3, 4, 1, 5]} -{"sent_id": [1, 0, 2, 5, 7, 10]} -{"sent_id": [4, 2, 5, 3, 7, 8]} -{"sent_id": [11, 1, 5, 4, 18, 2]} -{"sent_id": [4, 1, 6, 7, 8, 3]} -{"sent_id": [2, 1, 9, 4, 0, 7]} -{"sent_id": [0, 3, 17, 5, 16, 1]} -{"sent_id": [1, 2, 3, 11, 4, 10]} -{"sent_id": [1, 2, 6, 8, 3, 0]} -{"sent_id": [0, 2, 1, 14, 6, 7]} -{"sent_id": [2, 0, 1, 4, 7, 3]} -{"sent_id": [1, 3, 10, 2, 0, 4]} -{"sent_id": [6, 0, 10, 11, 9, 1]} -{"sent_id": [0, 3, 12, 1, 17, 2]} -{"sent_id": [0, 7, 3, 1, 4, 2]} -{"sent_id": [1, 6, 4, 3, 5, 0]} -{"sent_id": [0, 2, 3, 1, 4, 5]} -{"sent_id": [1, 4, 2, 3, 0, 9]} -{"sent_id": [1, 2, 5, 6, 7, 13]} -{"sent_id": [3, 11, 1, 10, 14, 9]} -{"sent_id": [3, 2, 0, 1, 11, 10]} -{"sent_id": [1, 5, 11, 2, 3, 0]} -{"sent_id": [0, 3, 10, 4, 1, 16]} -{"sent_id": [2, 0, 1, 4, 5, 8]} -{"sent_id": [10, 0, 9, 8, 16, 14]} -{"sent_id": [1, 5, 0, 2, 9, 10]} -{"sent_id": [2, 1, 5, 7, 12, 6]} -{"sent_id": [1, 0, 2, 12, 6, 5]} -{"sent_id": [2, 3, 15, 4, 1, 5]} -{"sent_id": [3, 2, 1, 5, 4, 8]} -{"sent_id": [3, 0, 1, 4, 2, 17]} -{"sent_id": [1, 0, 6, 8, 11, 2]} -{"sent_id": [2, 3, 0, 4, 7, 5]} -{"sent_id": [2, 5, 3, 0, 12, 6]} -{"sent_id": [0, 3, 5, 9, 7, 8]} -{"sent_id": [9, 2, 15, 3, 1, 0]} -{"sent_id": [1, 5, 6, 2, 0, 7]} -{"sent_id": [7, 1, 2, 10, 0, 15]} -{"sent_id": [1, 2, 3, 11, 0, 4]} -{"sent_id": [4, 3, 0, 1, 5, 2]} -{"sent_id": [16, 1, 4, 3, 15, 2]} -{"sent_id": [0, 13, 4, 10, 7, 6]} -{"sent_id": [4, 2, 1, 14, 3, 5]} -{"sent_id": [1, 4, 3, 0, 5, 2]} -{"sent_id": [10, 6, 4, 8, 5, 7]} -{"sent_id": [1, 2, 3, 18, 4, 17]} -{"sent_id": [7, 5, 2, 8, 1, 3]} -{"sent_id": [2, 1, 6, 5, 10, 8]} -{"sent_id": [1, 3, 12, 11, 9, 8]} -{"sent_id": [6, 7, 2, 1, 3, 16]} -{"sent_id": [19, 8, 2, 3, 1, 0]} -{"sent_id": [4, 1, 16, 17, 7, 9]} -{"sent_id": [4, 5, 2, 3, 0, 13]} -{"sent_id": [1, 3, 2, 0, 9, 7]} -{"sent_id": [10, 2, 0, 13, 4, 1]} -{"sent_id": [11, 3, 0, 6, 12, 7]} -{"sent_id": [2, 3, 1, 0, 5, 6]} -{"sent_id": [0, 1, 2, 4, 8, 6]} -{"sent_id": [3, 2, 1, 0, 4, 11]} -{"sent_id": [2, 0, 4, 1, 9, 8]} -{"sent_id": [7, 3, 4, 1, 2, 5]} -{"sent_id": [2, 4, 3, 1, 7, 6]} -{"sent_id": [1, 3, 7, 0, 5, 4]} -{"sent_id": [3, 14, 4, 2, 6, 5]} -{"sent_id": [8, 5, 4, 13, 9, 3]} -{"sent_id": [1, 11, 3, 5, 13, 6]} -{"sent_id": [1, 12, 0, 2, 3, 7]} -{"sent_id": [3, 6, 1, 2, 0, 8]} -{"sent_id": [1, 2, 0, 4, 10, 5]} -{"sent_id": [0, 2, 1, 3, 4, 5]} -{"sent_id": [2, 4, 1, 14, 6, 7]} -{"sent_id": [12, 0, 3, 4, 5, 2]} -{"sent_id": [4, 5, 15, 3, 1, 2]} -{"sent_id": [5, 0, 4, 6, 10, 9]} -{"sent_id": [1, 0, 8, 7, 6, 3]} -{"sent_id": [5, 3, 6, 1, 2, 8]} -{"sent_id": [0, 1, 5, 4, 18, 8]} -{"sent_id": [5, 0, 13, 14, 9, 1]} -{"sent_id": [3, 4, 0, 1, 11, 5]} -{"sent_id": [1, 3, 2, 0, 5, 6]} -{"sent_id": [1, 2, 5, 3, 8, 4]} -{"sent_id": [2, 3, 0, 4, 10, 9]} -{"sent_id": [5, 3, 6, 7, 2, 0]} -{"sent_id": [3, 9, 1, 2, 0, 5]} -{"sent_id": [2, 3, 4, 8, 0, 5]} -{"sent_id": [4, 14, 1, 0, 3, 6]} -{"sent_id": [3, 4, 2, 10, 7, 9]} -{"sent_id": [0, 15, 3, 6, 2, 4]} -{"sent_id": [9, 3, 2, 4, 0, 5]} -{"sent_id": [5, 1, 2, 6, 17, 7]} -{"sent_id": [2, 1, 5, 4, 0, 6]} -{"sent_id": [4, 0, 1, 5, 2, 3]} -{"sent_id": [1, 2, 3, 0, 15, 11]} -{"sent_id": [1, 4, 7, 8, 12, 9]} -{"sent_id": [3, 12, 7, 0, 2, 8]} -{"sent_id": [3, 4, 0, 1, 5, 14]} -{"sent_id": [1, 0, 7, 9, 4, 8]} -{"sent_id": [0, 1, 2, 15, 8, 9]} -{"sent_id": [0, 1, 16, 4, 8, 2]} -{"sent_id": [1, 2, 3, 4, 7, 10]} -{"sent_id": [3, 11, 10, 2, 13, 7]} -{"sent_id": [1, 8, 11, 3, 24, 26]} -{"sent_id": [1, 0, 5, 2, 6, 4]} -{"sent_id": [2, 1, 14, 0, 16, 6]} -{"sent_id": [12, 1, 4, 2, 8, 0]} -{"sent_id": [3, 6, 1, 0, 11, 8]} -{"sent_id": [4, 2, 5, 3, 10, 8]} -{"sent_id": [1, 3, 4, 2, 10, 14]} -{"sent_id": [3, 1, 13, 2, 6, 0]} -{"sent_id": [1, 4, 2, 3, 0, 6]} -{"sent_id": [1, 8, 9, 0, 3, 2]} -{"sent_id": [3, 2, 16, 4, 6, 5]} -{"sent_id": [3, 12, 4, 2, 5, 9]} -{"sent_id": [3, 1, 8, 2, 9, 11]} -{"sent_id": [1, 3, 2, 12, 10, 7]} -{"sent_id": [0, 1, 2, 10, 4, 3]} -{"sent_id": [2, 0, 1, 13, 14, 8]} -{"sent_id": [0, 4, 3, 2, 5, 7]} -{"sent_id": [4, 1, 14, 2, 8, 6]} -{"sent_id": [1, 3, 2, 5, 13, 4]} -{"sent_id": [8, 13, 9, 14, 19, 1]} -{"sent_id": [4, 1, 3, 2, 13, 6]} -{"sent_id": [3, 0, 14, 12, 2, 1]} -{"sent_id": [4, 1, 2, 7, 12, 5]} -{"sent_id": [2, 15, 6, 9, 3, 5]} -{"sent_id": [1, 2, 0, 5, 8, 4]} -{"sent_id": [1, 10, 0, 5, 3, 11]} -{"sent_id": [5, 2, 3, 0, 6, 1]} -{"sent_id": [3, 1, 2, 22, 13, 5]} -{"sent_id": [1, 2, 7, 8, 5, 9]} -{"sent_id": [1, 2, 4, 0, 8, 3]} -{"sent_id": [2, 1, 0, 5, 7, 3]} -{"sent_id": [3, 4, 0, 18, 2, 17]} -{"sent_id": [3, 0, 9, 8, 13, 14]} -{"sent_id": [4, 11, 3, 10, 0, 12]} -{"sent_id": [3, 2, 0, 8, 5, 1]} -{"sent_id": [6, 4, 3, 5, 1, 15]} -{"sent_id": [3, 0, 4, 1, 11, 12]} -{"sent_id": [1, 2, 3, 7, 0, 8]} -{"sent_id": [1, 3, 10, 0, 7, 6]} -{"sent_id": [4, 5, 11, 1, 2, 8]} -{"sent_id": [0, 1, 3, 9, 2, 17]} -{"sent_id": [5, 0, 2, 4, 1, 12]} -{"sent_id": [1, 4, 3, 2, 0, 6]} -{"sent_id": [3, 2, 1, 5, 6, 4]} -{"sent_id": [1, 2, 7, 4, 0, 19]} -{"sent_id": [2, 0, 1, 8, 11, 5]} -{"sent_id": [1, 2, 9, 10, 4, 5]} -{"sent_id": [4, 1, 2, 3, 9, 17]} -{"sent_id": [0, 1, 2, 9, 6, 8]} -{"sent_id": [3, 10, 1, 0, 4, 7]} -{"sent_id": [1, 3, 2, 4, 5, 11]} -{"sent_id": [0, 2, 10, 3, 1, 4]} -{"sent_id": [3, 7, 10, 5, 11, 13]} -{"sent_id": [2, 1, 4, 0, 8, 3]} -{"sent_id": [6, 7, 1, 5, 4, 0]} -{"sent_id": [3, 1, 4, 0, 2, 5]} -{"sent_id": [3, 13, 14, 2, 11, 7]} -{"sent_id": [1, 2, 3, 15, 7, 14]} -{"sent_id": [1, 14, 3, 11, 2, 13]} -{"sent_id": [12, 0, 4, 10, 8, 3]} -{"sent_id": [4, 14, 6, 3, 13, 19]} -{"sent_id": [2, 0, 1, 3, 7, 9]} -{"sent_id": [1, 3, 11, 2, 0, 15]} -{"sent_id": [1, 3, 11, 5, 4, 2]} -{"sent_id": [1, 0, 11, 10, 2, 3]} -{"sent_id": [9, 19, 8, 18, 4, 7]} -{"sent_id": [4, 5, 3, 0, 1, 14]} -{"sent_id": [2, 3, 4, 16, 9, 6]} -{"sent_id": [1, 6, 8, 2, 5, 3]} -{"sent_id": [2, 5, 22, 3, 10, 6]} -{"sent_id": [3, 11, 2, 6, 8, 7]} -{"sent_id": [3, 1, 2, 6, 15, 4]} -{"sent_id": [4, 3, 16, 5, 7, 1]} -{"sent_id": [3, 1, 2, 4, 0, 11]} -{"sent_id": [9, 3, 4, 5, 2, 8]} -{"sent_id": [2, 1, 0, 5, 11, 8]} -{"sent_id": [2, 0, 3, 4, 1, 5]} -{"sent_id": [1, 2, 3, 6, 4, 14]} -{"sent_id": [1, 4, 7, 12, 8, 9]} -{"sent_id": [0, 4, 3, 15, 2, 1]} -{"sent_id": [4, 1, 6, 3, 14, 2]} -{"sent_id": [3, 10, 5, 2, 4, 11]} -{"sent_id": [2, 16, 11, 13, 5, 18]} -{"sent_id": [3, 0, 1, 9, 2, 6]} -{"sent_id": [1, 5, 3, 4, 6, 2]} -{"sent_id": [1, 3, 2, 0, 9, 13]} -{"sent_id": [1, 3, 2, 6, 4, 0]} -{"sent_id": [1, 3, 12, 7, 0, 9]} -{"sent_id": [4, 3, 7, 5, 14, 13]} -{"sent_id": [3, 1, 2, 5, 8, 4]} -{"sent_id": [1, 2, 0, 7, 5, 3]} -{"sent_id": [1, 3, 8, 0, 2, 4]} -{"sent_id": [16, 3, 0, 22, 1, 4]} -{"sent_id": [8, 11, 22, 15, 13, 7]} -{"sent_id": [1, 4, 2, 3, 0, 6]} -{"sent_id": [2, 1, 3, 5, 6, 0]} -{"sent_id": [9, 2, 10, 3, 11, 4]} -{"sent_id": [1, 2, 3, 11, 10, 4]} -{"sent_id": [0, 12, 1, 15, 14, 4]} -{"sent_id": [5, 0, 6, 7, 2, 17]} -{"sent_id": [1, 0, 7, 2, 3, 6]} -{"sent_id": [1, 15, 5, 2, 4, 11]} -{"sent_id": [3, 1, 2, 4, 6, 5]} -{"sent_id": [1, 3, 12, 0, 2, 4]} -{"sent_id": [2, 7, 6, 3, 0, 1]} -{"sent_id": [3, 4, 6, 5, 0, 1]} -{"sent_id": [2, 3, 1, 0, 4, 9]} -{"sent_id": [5, 4, 2, 6, 0, 8]} -{"sent_id": [2, 8, 3, 4, 1, 5]} -{"sent_id": [4, 1, 8, 2, 5, 9]} -{"sent_id": [2, 6, 4, 3, 5, 1]} -{"sent_id": [2, 6, 16, 9, 1, 12]} -{"sent_id": [3, 6, 8, 7, 2, 5]} -{"sent_id": [3, 1, 16, 15, 8, 6]} -{"sent_id": [0, 3, 1, 2, 4, 5]} -{"sent_id": [2, 1, 9, 0, 3, 11]} -{"sent_id": [5, 1, 2, 7, 14, 12]} -{"sent_id": [1, 2, 0, 3, 18, 4]} -{"sent_id": [0, 1, 3, 8, 5, 2]} -{"sent_id": [3, 6, 4, 0, 1, 2]} -{"sent_id": [1, 3, 4, 10, 7, 2]} -{"sent_id": [0, 2, 4, 3, 10, 7]} -{"sent_id": [1, 5, 9, 2, 20, 7]} -{"sent_id": [2, 1, 3, 5, 4, 6]} -{"sent_id": [4, 1, 5, 6, 3, 2]} -{"sent_id": [3, 5, 4, 1, 0, 14]} -{"sent_id": [1, 6, 2, 8, 10, 9]} -{"sent_id": [1, 2, 0, 11, 3, 6]} -{"sent_id": [0, 13, 3, 4, 2, 8]} -{"sent_id": [1, 3, 2, 4, 7, 0]} -{"sent_id": [3, 5, 4, 0, 6, 1]} -{"sent_id": [1, 15, 2, 5, 16, 3]} -{"sent_id": [1, 5, 3, 4, 2, 8]} -{"sent_id": [1, 4, 11, 5, 0, 10]} -{"sent_id": [1, 2, 3, 4, 10, 0]} -{"sent_id": [1, 2, 15, 6, 10, 11]} -{"sent_id": [1, 2, 12, 9, 3, 0]} -{"sent_id": [2, 3, 0, 7, 4, 11]} -{"sent_id": [1, 5, 6, 0, 2, 7]} -{"sent_id": [0, 1, 2, 16, 3, 5]} -{"sent_id": [3, 9, 8, 4, 2, 6]} -{"sent_id": [3, 9, 1, 8, 7, 10]} -{"sent_id": [1, 2, 0, 5, 14, 9]} -{"sent_id": [2, 3, 7, 4, 5, 6]} -{"sent_id": [2, 7, 10, 1, 3, 0]} -{"sent_id": [3, 0, 12, 1, 2, 4]} -{"sent_id": [3, 1, 2, 0, 12, 10]} -{"sent_id": [5, 1, 0, 2, 6, 3]} -{"sent_id": [1, 6, 3, 5, 2, 4]} -{"sent_id": [3, 1, 2, 4, 6, 7]} -{"sent_id": [1, 5, 4, 3, 7, 2]} -{"sent_id": [1, 2, 10, 5, 3, 4]} -{"sent_id": [4, 3, 2, 1, 9, 11]} -{"sent_id": [1, 5, 8, 12, 4, 9]} -{"sent_id": [2, 3, 4, 7, 1, 0]} -{"sent_id": [0, 8, 3, 2, 1, 16]} -{"sent_id": [2, 5, 9, 0, 7, 8]} -{"sent_id": [1, 6, 3, 17, 11, 10]} -{"sent_id": [1, 9, 5, 4, 2, 0]} -{"sent_id": [1, 3, 2, 12, 0, 7]} -{"sent_id": [2, 3, 4, 8, 12, 10]} -{"sent_id": [2, 1, 5, 3, 4, 12]} -{"sent_id": [3, 5, 6, 1, 7, 4]} -{"sent_id": [6, 7, 8, 1, 4, 5]} -{"sent_id": [1, 5, 2, 13, 3, 0]} -{"sent_id": [0, 2, 6, 4, 1, 7]} -{"sent_id": [1, 0, 5, 4, 12, 13]} -{"sent_id": [0, 3, 1, 7, 2, 8]} -{"sent_id": [0, 1, 18, 5, 2, 16]} -{"sent_id": [0, 13, 4, 1, 2, 9]} -{"sent_id": [4, 3, 1, 6, 5, 14]} -{"sent_id": [3, 1, 2, 10, 0, 4]} -{"sent_id": [1, 7, 4, 2, 10, 5]} -{"sent_id": [3, 1, 13, 14, 0, 2]} -{"sent_id": [1, 2, 0, 6, 7, 10]} -{"sent_id": [2, 3, 10, 15, 6, 9]} -{"sent_id": [2, 6, 4, 3, 5, 11]} -{"sent_id": [0, 14, 2, 1, 6, 9]} -{"sent_id": [1, 6, 5, 17, 16, 3]} -{"sent_id": [4, 0, 5, 1, 2, 3]} -{"sent_id": [1, 2, 9, 6, 5, 10]} -{"sent_id": [4, 3, 0, 5, 13, 1]} -{"sent_id": [1, 3, 4, 7, 2, 0]} -{"sent_id": [3, 1, 2, 4, 0, 5]} -{"sent_id": [1, 6, 4, 2, 16, 3]} -{"sent_id": [1, 4, 3, 5, 2, 0]} -{"sent_id": [7, 5, 2, 6, 0, 10]} -{"sent_id": [1, 2, 6, 3, 4, 14]} -{"sent_id": [8, 1, 0, 2, 7, 3]} -{"sent_id": [1, 0, 2, 6, 12, 11]} -{"sent_id": [2, 3, 1, 5, 9, 6]} -{"sent_id": [4, 1, 0, 5, 6, 10]} -{"sent_id": [1, 2, 4, 3, 5, 8]} -{"sent_id": [2, 5, 1, 10, 9, 4]} -{"sent_id": [3, 2, 1, 9, 0, 18]} -{"sent_id": [2, 1, 6, 5, 0, 4]} -{"sent_id": [4, 0, 5, 1, 7, 18]} -{"sent_id": [2, 4, 0, 5, 8, 6]} -{"sent_id": [3, 4, 0, 1, 2, 7]} -{"sent_id": [1, 2, 7, 4, 8, 3]} -{"sent_id": [1, 0, 15, 9, 6, 5]} -{"sent_id": [0, 4, 1, 2, 5, 13]} -{"sent_id": [1, 10, 2, 4, 3, 6]} -{"sent_id": [4, 2, 3, 1, 8, 0]} -{"sent_id": [1, 2, 3, 11, 0, 4]} -{"sent_id": [3, 8, 0, 2, 1, 4]} -{"sent_id": [2, 1, 0, 8, 11, 14]} -{"sent_id": [3, 2, 8, 11, 6, 7]} -{"sent_id": [1, 2, 3, 5, 6, 0]} -{"sent_id": [0, 2, 1, 4, 7, 6]} -{"sent_id": [3, 2, 4, 8, 14, 0]} -{"sent_id": [1, 4, 2, 5, 13, 9]} -{"sent_id": [2, 1, 11, 4, 3, 0]} -{"sent_id": [8, 1, 0, 7, 13, 4]} -{"sent_id": [0, 1, 3, 2, 5, 9]} -{"sent_id": [5, 14, 1, 0, 11, 15]} -{"sent_id": [5, 1, 4, 6, 0, 10]} -{"sent_id": [1, 2, 6, 8, 13, 4]} -{"sent_id": [3, 4, 0, 10, 7, 1]} -{"sent_id": [1, 6, 5, 2, 4, 0]} -{"sent_id": [2, 1, 13, 5, 6, 0]} -{"sent_id": [1, 3, 11, 2, 14, 7]} -{"sent_id": [4, 1, 11, 9, 10, 0]} -{"sent_id": [3, 2, 1, 7, 0, 5]} -{"sent_id": [1, 2, 4, 17, 6, 5]} -{"sent_id": [1, 4, 12, 7, 9, 3]} -{"sent_id": [4, 1, 11, 6, 15, 17]} -{"sent_id": [3, 0, 1, 6, 2, 8]} -{"sent_id": [0, 4, 1, 14, 3, 10]} -{"sent_id": [2, 1, 6, 5, 11, 12]} -{"sent_id": [1, 2, 11, 9, 5, 7]} -{"sent_id": [0, 1, 6, 7, 3, 2]} -{"sent_id": [1, 3, 2, 5, 4, 0]} -{"sent_id": [1, 2, 3, 4, 9, 8]} -{"sent_id": [1, 0, 2, 3, 9, 5]} -{"sent_id": [2, 3, 4, 6, 5, 13]} -{"sent_id": [2, 3, 1, 8, 5, 7]} -{"sent_id": [2, 1, 4, 9, 7, 10]} -{"sent_id": [13, 3, 0, 1, 2, 10]} -{"sent_id": [1, 2, 3, 6, 9, 0]} -{"sent_id": [1, 2, 3, 5, 4, 6]} -{"sent_id": [2, 5, 10, 7, 6, 0]} -{"sent_id": [0, 12, 1, 19, 17, 2]} -{"sent_id": [9, 10, 11, 19, 18, 0]} -{"sent_id": [5, 2, 1, 15, 12, 14]} -{"sent_id": [1, 5, 2, 14, 6, 15]} -{"sent_id": [3, 0, 10, 1, 2, 14]} -{"sent_id": [5, 6, 2, 3, 4, 15]} -{"sent_id": [4, 5, 3, 10, 6, 7]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [1, 2, 3, 10, 8, 7]} -{"sent_id": [3, 4, 1, 5, 12, 6]} -{"sent_id": [1, 5, 2, 3, 9, 0]} -{"sent_id": [0, 6, 1, 9, 4, 2]} -{"sent_id": [1, 2, 6, 4, 0, 7]} -{"sent_id": [2, 12, 6, 8, 0, 5]} -{"sent_id": [7, 2, 10, 8, 1, 9]} -{"sent_id": [5, 11, 4, 13, 6, 17]} -{"sent_id": [7, 0, 9, 1, 11, 8]} -{"sent_id": [5, 4, 2, 1, 12, 6]} -{"sent_id": [0, 2, 4, 10, 1, 3]} -{"sent_id": [5, 1, 3, 8, 4, 0]} -{"sent_id": [2, 0, 1, 6, 10, 15]} -{"sent_id": [1, 3, 2, 4, 0, 5]} -{"sent_id": [1, 3, 2, 9, 0, 4]} -{"sent_id": [3, 1, 8, 2, 0, 6]} -{"sent_id": [0, 5, 3, 17, 9, 1]} -{"sent_id": [3, 4, 5, 1, 2, 9]} -{"sent_id": [0, 1, 10, 11, 6, 16]} -{"sent_id": [2, 1, 3, 4, 7, 6]} -{"sent_id": [1, 2, 4, 8, 0, 3]} -{"sent_id": [2, 1, 7, 3, 4, 5]} -{"sent_id": [3, 2, 0, 4, 6, 10]} -{"sent_id": [3, 0, 1, 16, 11, 2]} -{"sent_id": [1, 2, 5, 3, 4, 6]} -{"sent_id": [8, 2, 0, 6, 4, 16]} -{"sent_id": [0, 4, 1, 22, 2, 17]} -{"sent_id": [1, 12, 9, 11, 2, 8]} -{"sent_id": [3, 0, 1, 7, 6, 8]} -{"sent_id": [0, 1, 2, 5, 10, 4]} -{"sent_id": [0, 14, 1, 10, 4, 15]} -{"sent_id": [1, 5, 2, 12, 3, 4]} -{"sent_id": [1, 12, 3, 5, 4, 11]} -{"sent_id": [0, 4, 1, 9, 6, 5]} -{"sent_id": [1, 4, 5, 6, 15, 0]} -{"sent_id": [1, 8, 4, 0, 3, 9]} -{"sent_id": [12, 3, 15, 0, 7, 1]} -{"sent_id": [2, 1, 4, 5, 0, 7]} -{"sent_id": [9, 14, 4, 7, 8, 13]} -{"sent_id": [3, 1, 2, 0, 7, 4]} -{"sent_id": [0, 17, 18, 1, 2, 19]} -{"sent_id": [4, 17, 2, 10, 8, 12]} -{"sent_id": [3, 2, 4, 1, 5, 12]} -{"sent_id": [1, 3, 4, 8, 0, 2]} -{"sent_id": [2, 3, 8, 4, 7, 0]} -{"sent_id": [1, 0, 4, 2, 3, 5]} -{"sent_id": [7, 8, 6, 4, 17, 1]} -{"sent_id": [1, 2, 3, 7, 0, 6]} -{"sent_id": [4, 5, 0, 6, 1, 13]} -{"sent_id": [1, 2, 8, 4, 5, 0]} -{"sent_id": [2, 4, 3, 1, 10, 0]} -{"sent_id": [0, 4, 7, 3, 5, 10]} -{"sent_id": [1, 10, 0, 5, 7, 16]} -{"sent_id": [0, 4, 3, 5, 2, 9]} -{"sent_id": [4, 0, 6, 1, 3, 13]} -{"sent_id": [1, 3, 2, 7, 4, 0]} -{"sent_id": [3, 1, 13, 2, 8, 5]} -{"sent_id": [0, 4, 1, 2, 5, 3]} -{"sent_id": [3, 0, 15, 2, 1, 5]} -{"sent_id": [11, 2, 3, 4, 0, 12]} -{"sent_id": [1, 2, 5, 3, 6, 8]} -{"sent_id": [2, 0, 3, 6, 9, 17]} -{"sent_id": [0, 1, 2, 4, 11, 6]} -{"sent_id": [4, 0, 17, 1, 3, 13]} -{"sent_id": [1, 2, 3, 5, 15, 0]} -{"sent_id": [2, 7, 3, 8, 1, 0]} -{"sent_id": [0, 1, 3, 9, 7, 2]} -{"sent_id": [5, 11, 3, 10, 0, 6]} -{"sent_id": [0, 2, 1, 15, 3, 4]} -{"sent_id": [3, 7, 1, 0, 5, 4]} -{"sent_id": [4, 1, 2, 0, 6, 8]} -{"sent_id": [5, 2, 1, 4, 0, 13]} -{"sent_id": [5, 4, 15, 7, 8, 12]} -{"sent_id": [4, 5, 14, 3, 0, 16]} -{"sent_id": [5, 4, 3, 6, 1, 2]} -{"sent_id": [4, 1, 2, 3, 10, 13]} -{"sent_id": [1, 2, 9, 5, 10, 0]} -{"sent_id": [1, 3, 2, 0, 6, 4]} -{"sent_id": [0, 1, 2, 7, 9, 3]} -{"sent_id": [1, 2, 5, 4, 8, 0]} -{"sent_id": [4, 3, 14, 5, 7, 13]} -{"sent_id": [3, 4, 0, 1, 2, 8]} -{"sent_id": [0, 1, 4, 6, 10, 3]} -{"sent_id": [1, 2, 0, 4, 11, 6]} -{"sent_id": [1, 0, 3, 8, 11, 6]} -{"sent_id": [1, 2, 13, 0, 18, 3]} -{"sent_id": [1, 3, 2, 16, 17, 4]} -{"sent_id": [14, 3, 1, 2, 9, 15]} -{"sent_id": [2, 1, 3, 6, 4, 5]} -{"sent_id": [10, 9, 2, 16, 1, 4]} -{"sent_id": [4, 1, 3, 2, 0, 6]} -{"sent_id": [3, 4, 10, 9, 1, 8]} -{"sent_id": [1, 2, 6, 0, 15, 3]} -{"sent_id": [2, 6, 8, 3, 11, 12]} -{"sent_id": [0, 4, 5, 2, 3, 7]} -{"sent_id": [1, 2, 0, 3, 7, 8]} -{"sent_id": [18, 4, 1, 16, 17, 13]} -{"sent_id": [2, 1, 4, 3, 6, 0]} -{"sent_id": [3, 9, 0, 1, 2, 6]} -{"sent_id": [12, 8, 15, 16, 19, 4]} -{"sent_id": [3, 4, 5, 12, 17, 6]} -{"sent_id": [1, 3, 2, 5, 4, 11]} -{"sent_id": [2, 1, 0, 6, 7, 12]} -{"sent_id": [2, 3, 7, 0, 6, 8]} -{"sent_id": [2, 3, 1, 7, 12, 0]} -{"sent_id": [4, 1, 0, 13, 3, 12]} -{"sent_id": [1, 11, 2, 3, 4, 10]} -{"sent_id": [1, 2, 3, 5, 15, 14]} -{"sent_id": [3, 1, 12, 4, 2, 13]} -{"sent_id": [1, 2, 0, 11, 3, 6]} -{"sent_id": [1, 13, 6, 12, 0, 2]} -{"sent_id": [1, 0, 2, 15, 3, 11]} -{"sent_id": [3, 1, 2, 0, 4, 10]} -{"sent_id": [1, 2, 3, 4, 6, 16]} -{"sent_id": [6, 5, 1, 2, 3, 10]} -{"sent_id": [3, 2, 0, 1, 7, 11]} -{"sent_id": [2, 15, 1, 3, 4, 11]} -{"sent_id": [0, 2, 10, 3, 4, 1]} -{"sent_id": [1, 3, 4, 6, 8, 15]} -{"sent_id": [9, 7, 10, 1, 4, 0]} -{"sent_id": [3, 4, 2, 5, 10, 1]} -{"sent_id": [3, 14, 2, 1, 15, 6]} -{"sent_id": [4, 1, 0, 2, 8, 3]} -{"sent_id": [0, 3, 1, 2, 8, 4]} -{"sent_id": [3, 4, 2, 5, 10, 7]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [8, 4, 15, 1, 5, 3]} -{"sent_id": [1, 0, 4, 3, 5, 14]} -{"sent_id": [6, 1, 18, 16, 15, 3]} -{"sent_id": [3, 2, 16, 4, 0, 1]} -{"sent_id": [3, 2, 11, 7, 5, 1]} -{"sent_id": [1, 3, 0, 2, 5, 10]} -{"sent_id": [3, 5, 8, 6, 2, 10]} -{"sent_id": [6, 1, 0, 4, 13, 5]} -{"sent_id": [2, 12, 8, 1, 13, 3]} -{"sent_id": [2, 1, 0, 4, 5, 6]} -{"sent_id": [9, 3, 10, 4, 1, 8]} -{"sent_id": [4, 5, 3, 8, 13, 0]} -{"sent_id": [0, 1, 2, 12, 6, 7]} -{"sent_id": [1, 5, 3, 2, 4, 11]} -{"sent_id": [1, 3, 4, 2, 0, 12]} -{"sent_id": [1, 7, 18, 19, 3, 0]} -{"sent_id": [1, 4, 2, 5, 10, 6]} -{"sent_id": [0, 1, 3, 4, 8, 7]} -{"sent_id": [1, 2, 3, 4, 6, 0]} -{"sent_id": [13, 2, 8, 9, 12, 3]} -{"sent_id": [4, 3, 7, 1, 2, 0]} -{"sent_id": [0, 4, 5, 9, 2, 6]} -{"sent_id": [6, 1, 7, 5, 0, 3]} -{"sent_id": [5, 0, 2, 7, 3, 6]} -{"sent_id": [2, 4, 3, 5, 6, 9]} -{"sent_id": [8, 11, 6, 9, 12, 10]} -{"sent_id": [1, 2, 9, 5, 7, 6]} -{"sent_id": [0, 1, 7, 3, 11, 12]} -{"sent_id": [4, 9, 0, 1, 2, 3]} -{"sent_id": [3, 7, 1, 4, 12, 5]} -{"sent_id": [9, 0, 3, 2, 10, 15]} -{"sent_id": [1, 2, 0, 8, 6, 13]} -{"sent_id": [0, 2, 1, 5, 4, 8]} -{"sent_id": [0, 3, 1, 2, 5, 9]} -{"sent_id": [4, 3, 2, 15, 0, 14]} -{"sent_id": [3, 4, 11, 1, 7, 6]} -{"sent_id": [1, 2, 5, 6, 11, 7]} -{"sent_id": [2, 1, 3, 4, 9, 8]} -{"sent_id": [5, 7, 17, 1, 3, 0]} -{"sent_id": [1, 4, 0, 13, 3, 9]} -{"sent_id": [1, 3, 2, 16, 15, 0]} -{"sent_id": [5, 3, 1, 2, 8, 0]} -{"sent_id": [1, 0, 3, 2, 7, 5]} -{"sent_id": [3, 1, 2, 8, 4, 5]} -{"sent_id": [3, 18, 1, 2, 19, 9]} -{"sent_id": [2, 5, 1, 6, 10, 17]} -{"sent_id": [1, 2, 0, 4, 14, 3]} -{"sent_id": [1, 7, 3, 8, 12, 4]} -{"sent_id": [3, 12, 13, 4, 11, 2]} -{"sent_id": [1, 3, 5, 13, 4, 2]} -{"sent_id": [2, 4, 3, 14, 11, 15]} -{"sent_id": [3, 1, 2, 4, 9, 6]} -{"sent_id": [4, 1, 2, 0, 7, 9]} -{"sent_id": [1, 2, 4, 8, 6, 10]} -{"sent_id": [0, 3, 6, 7, 12, 9]} -{"sent_id": [3, 2, 9, 0, 5, 4]} -{"sent_id": [4, 3, 9, 0, 1, 11]} -{"sent_id": [3, 7, 1, 0, 2, 6]} -{"sent_id": [3, 0, 1, 14, 10, 2]} -{"sent_id": [2, 3, 4, 1, 10, 6]} -{"sent_id": [1, 8, 2, 7, 16, 0]} -{"sent_id": [4, 3, 9, 6, 11, 5]} -{"sent_id": [1, 2, 3, 7, 8, 4]} -{"sent_id": [6, 9, 4, 0, 5, 1]} -{"sent_id": [2, 5, 4, 1, 3, 8]} -{"sent_id": [0, 2, 1, 7, 3, 4]} -{"sent_id": [1, 2, 7, 3, 4, 6]} -{"sent_id": [3, 1, 2, 5, 10, 12]} -{"sent_id": [2, 4, 0, 1, 3, 5]} -{"sent_id": [5, 1, 0, 10, 2, 4]} -{"sent_id": [3, 9, 1, 2, 4, 8]} -{"sent_id": [0, 2, 3, 1, 4, 8]} -{"sent_id": [4, 3, 1, 2, 0, 8]} -{"sent_id": [0, 4, 5, 6, 8, 2]} -{"sent_id": [3, 9, 4, 10, 6, 14]} -{"sent_id": [3, 1, 0, 11, 9, 2]} -{"sent_id": [1, 4, 2, 14, 6, 5]} -{"sent_id": [3, 8, 1, 2, 11, 9]} -{"sent_id": [7, 6, 5, 3, 12, 4]} -{"sent_id": [5, 3, 13, 4, 1, 2]} -{"sent_id": [1, 2, 3, 11, 4, 0]} -{"sent_id": [1, 4, 2, 3, 9, 5]} -{"sent_id": [2, 3, 0, 5, 10, 4]} -{"sent_id": [1, 9, 4, 2, 3, 10]} -{"sent_id": [1, 5, 3, 11, 2, 8]} -{"sent_id": [1, 0, 3, 2, 16, 8]} -{"sent_id": [3, 8, 2, 1, 0, 4]} -{"sent_id": [1, 2, 3, 4, 7, 0]} -{"sent_id": [1, 2, 3, 9, 0, 5]} -{"sent_id": [2, 4, 3, 5, 0, 1]} -{"sent_id": [4, 2, 1, 14, 5, 15]} -{"sent_id": [1, 4, 8, 2, 0, 3]} -{"sent_id": [2, 0, 5, 9, 4, 1]} -{"sent_id": [1, 2, 0, 3, 5, 4]} -{"sent_id": [4, 14, 2, 20, 17, 19]} -{"sent_id": [4, 5, 2, 7, 10, 6]} -{"sent_id": [5, 4, 3, 12, 18, 6]} -{"sent_id": [3, 4, 7, 2, 1, 5]} -{"sent_id": [2, 0, 4, 5, 14, 6]} -{"sent_id": [0, 1, 3, 10, 2, 14]} -{"sent_id": [2, 1, 14, 9, 0, 3]} -{"sent_id": [4, 5, 2, 16, 0, 6]} -{"sent_id": [5, 1, 3, 4, 6, 0]} -{"sent_id": [1, 2, 6, 0, 3, 12]} -{"sent_id": [5, 0, 12, 29, 7, 15]} -{"sent_id": [1, 5, 3, 4, 8, 11]} -{"sent_id": [3, 14, 0, 1, 4, 5]} -{"sent_id": [1, 6, 4, 3, 0, 7]} -{"sent_id": [0, 11, 13, 8, 3, 7]} -{"sent_id": [3, 5, 9, 1, 14, 20]} -{"sent_id": [3, 8, 2, 5, 6, 4]} -{"sent_id": [1, 0, 3, 2, 12, 8]} -{"sent_id": [1, 9, 2, 4, 3, 5]} -{"sent_id": [3, 9, 1, 0, 10, 2]} -{"sent_id": [4, 7, 6, 3, 2, 0]} -{"sent_id": [0, 2, 3, 4, 1, 5]} -{"sent_id": [0, 3, 1, 8, 6, 4]} -{"sent_id": [1, 4, 0, 13, 5, 3]} -{"sent_id": [0, 5, 2, 4, 13, 1]} -{"sent_id": [0, 1, 9, 3, 2, 5]} -{"sent_id": [2, 4, 3, 5, 6, 10]} -{"sent_id": [2, 0, 4, 5, 6, 11]} -{"sent_id": [2, 1, 8, 3, 6, 9]} -{"sent_id": [0, 1, 4, 9, 2, 3]} -{"sent_id": [0, 4, 3, 9, 6, 16]} -{"sent_id": [2, 3, 0, 4, 5, 6]} -{"sent_id": [0, 2, 3, 1, 4, 6]} -{"sent_id": [5, 1, 13, 6, 0, 11]} -{"sent_id": [2, 1, 3, 0, 10, 4]} -{"sent_id": [2, 1, 5, 4, 6, 7]} -{"sent_id": [1, 7, 3, 2, 10, 4]} -{"sent_id": [3, 4, 1, 2, 15, 5]} -{"sent_id": [0, 1, 2, 4, 7, 3]} -{"sent_id": [4, 6, 0, 2, 9, 3]} -{"sent_id": [3, 1, 15, 2, 4, 9]} -{"sent_id": [3, 1, 9, 7, 0, 2]} -{"sent_id": [12, 6, 5, 1, 0, 4]} -{"sent_id": [3, 2, 0, 1, 4, 8]} -{"sent_id": [0, 2, 1, 9, 13, 7]} -{"sent_id": [1, 4, 13, 5, 3, 2]} -{"sent_id": [9, 5, 3, 6, 2, 7]} -{"sent_id": [3, 4, 0, 7, 5, 2]} -{"sent_id": [2, 1, 4, 3, 16, 0]} -{"sent_id": [1, 0, 2, 3, 11, 13]} -{"sent_id": [2, 13, 15, 0, 3, 11]} -{"sent_id": [5, 4, 15, 0, 8, 1]} -{"sent_id": [1, 2, 5, 3, 7, 4]} -{"sent_id": [9, 3, 2, 1, 10, 4]} -{"sent_id": [4, 2, 6, 12, 3, 1]} -{"sent_id": [9, 10, 13, 3, 1, 2]} -{"sent_id": [2, 3, 4, 0, 8, 5]} -{"sent_id": [4, 3, 5, 6, 1, 2]} -{"sent_id": [0, 7, 1, 2, 3, 8]} -{"sent_id": [2, 3, 9, 1, 7, 6]} -{"sent_id": [2, 4, 12, 3, 5, 7]} -{"sent_id": [1, 2, 4, 3, 0, 5]} -{"sent_id": [3, 0, 4, 1, 2, 9]} -{"sent_id": [1, 2, 0, 13, 4, 3]} -{"sent_id": [3, 1, 4, 2, 15, 6]} -{"sent_id": [1, 5, 0, 3, 11, 4]} -{"sent_id": [3, 4, 5, 7, 6, 8]} -{"sent_id": [3, 0, 5, 4, 14, 6]} -{"sent_id": [3, 5, 4, 2, 10, 1]} -{"sent_id": [2, 3, 1, 4, 10, 5]} -{"sent_id": [1, 2, 3, 8, 4, 13]} -{"sent_id": [3, 2, 11, 0, 5, 14]} -{"sent_id": [1, 15, 4, 2, 6, 5]} -{"sent_id": [2, 1, 3, 0, 4, 22]} -{"sent_id": [2, 1, 3, 5, 6, 7]} -{"sent_id": [4, 5, 14, 16, 28, 26]} -{"sent_id": [4, 13, 10, 0, 5, 7]} -{"sent_id": [0, 3, 13, 11, 10, 8]} -{"sent_id": [6, 0, 5, 10, 1, 7]} -{"sent_id": [5, 2, 0, 4, 10, 1]} -{"sent_id": [1, 3, 5, 2, 13, 4]} -{"sent_id": [1, 0, 9, 7, 5, 8]} -{"sent_id": [2, 3, 1, 0, 4, 7]} -{"sent_id": [1, 8, 3, 9, 2, 5]} -{"sent_id": [0, 3, 13, 2, 4, 11]} -{"sent_id": [2, 8, 1, 4, 3, 9]} -{"sent_id": [3, 5, 18, 10, 2, 0]} -{"sent_id": [2, 3, 4, 11, 0, 1]} -{"sent_id": [3, 2, 5, 6, 9, 4]} -{"sent_id": [2, 3, 0, 11, 1, 4]} -{"sent_id": [13, 0, 5, 6, 11, 8]} -{"sent_id": [3, 4, 1, 2, 9, 10]} -{"sent_id": [1, 16, 4, 2, 0, 6]} -{"sent_id": [1, 2, 5, 14, 13, 4]} -{"sent_id": [2, 4, 5, 1, 3, 6]} -{"sent_id": [1, 2, 4, 7, 0, 8]} -{"sent_id": [3, 0, 13, 5, 1, 12]} -{"sent_id": [9, 5, 4, 6, 3, 1]} -{"sent_id": [4, 3, 1, 0, 2, 6]} -{"sent_id": [2, 4, 3, 11, 0, 1]} -{"sent_id": [1, 4, 2, 0, 14, 3]} -{"sent_id": [2, 7, 1, 3, 10, 6]} -{"sent_id": [1, 2, 4, 7, 17, 3]} -{"sent_id": [13, 4, 3, 1, 2, 5]} -{"sent_id": [3, 6, 17, 11, 8, 18]} -{"sent_id": [3, 2, 0, 1, 4, 5]} -{"sent_id": [3, 1, 2, 0, 4, 6]} -{"sent_id": [1, 2, 4, 10, 8, 11]} -{"sent_id": [1, 2, 4, 9, 3, 8]} -{"sent_id": [1, 2, 8, 7, 6, 4]} -{"sent_id": [9, 1, 8, 2, 13, 4]} -{"sent_id": [1, 4, 5, 10, 3, 6]} -{"sent_id": [3, 1, 7, 2, 6, 0]} -{"sent_id": [1, 0, 2, 3, 5, 4]} -{"sent_id": [5, 1, 2, 3, 6, 0]} -{"sent_id": [3, 2, 1, 9, 8, 0]} -{"sent_id": [4, 5, 0, 6, 1, 2]} -{"sent_id": [4, 1, 3, 2, 9, 7]} -{"sent_id": [5, 13, 1, 2, 6, 3]} -{"sent_id": [2, 4, 10, 0, 3, 13]} -{"sent_id": [1, 2, 4, 7, 5, 9]} -{"sent_id": [2, 3, 1, 7, 0, 8]} -{"sent_id": [3, 4, 1, 12, 2, 5]} -{"sent_id": [0, 1, 10, 4, 2, 5]} -{"sent_id": [3, 5, 4, 10, 0, 1]} -{"sent_id": [0, 2, 3, 8, 5, 9]} -{"sent_id": [1, 2, 12, 8, 0, 5]} -{"sent_id": [6, 14, 0, 13, 2, 15]} -{"sent_id": [4, 5, 2, 6, 1, 0]} -{"sent_id": [1, 2, 3, 5, 4, 6]} -{"sent_id": [1, 3, 4, 6, 9, 2]} -{"sent_id": [4, 3, 5, 8, 12, 0]} -{"sent_id": [0, 4, 3, 2, 6, 10]} -{"sent_id": [1, 6, 2, 4, 3, 5]} -{"sent_id": [6, 0, 4, 5, 9, 13]} -{"sent_id": [0, 8, 6, 1, 5, 15]} -{"sent_id": [0, 10, 1, 8, 2, 11]} -{"sent_id": [3, 1, 11, 12, 2, 0]} -{"sent_id": [4, 1, 0, 5, 9, 18]} -{"sent_id": [3, 2, 8, 0, 1, 6]} -{"sent_id": [3, 1, 0, 8, 2, 7]} -{"sent_id": [1, 2, 3, 6, 4, 9]} -{"sent_id": [1, 4, 2, 16, 3, 0]} -{"sent_id": [2, 5, 4, 0, 3, 7]} -{"sent_id": [7, 1, 11, 3, 2, 4]} -{"sent_id": [2, 4, 7, 0, 9, 8]} -{"sent_id": [1, 2, 4, 0, 5, 3]} -{"sent_id": [2, 7, 8, 0, 1, 6]} -{"sent_id": [3, 4, 0, 1, 14, 2]} -{"sent_id": [2, 1, 3, 0, 6, 7]} -{"sent_id": [1, 2, 0, 4, 5, 8]} -{"sent_id": [1, 4, 11, 10, 2, 8]} -{"sent_id": [3, 12, 2, 1, 13, 10]} -{"sent_id": [3, 9, 10, 4, 11, 1]} -{"sent_id": [1, 3, 11, 5, 14, 2]} -{"sent_id": [4, 3, 1, 2, 5, 11]} -{"sent_id": [1, 5, 7, 3, 0, 4]} -{"sent_id": [1, 3, 10, 11, 12, 5]} -{"sent_id": [3, 1, 9, 2, 0, 5]} -{"sent_id": [3, 4, 2, 15, 1, 11]} -{"sent_id": [0, 1, 2, 15, 3, 11]} -{"sent_id": [1, 2, 4, 8, 13, 3]} -{"sent_id": [3, 2, 1, 4, 0, 11]} -{"sent_id": [1, 7, 2, 13, 0, 8]} -{"sent_id": [1, 7, 2, 6, 3, 10]} -{"sent_id": [1, 4, 2, 3, 8, 7]} -{"sent_id": [3, 0, 1, 12, 2, 4]} -{"sent_id": [2, 3, 1, 5, 0, 10]} -{"sent_id": [3, 11, 2, 4, 1, 14]} -{"sent_id": [3, 4, 1, 0, 2, 5]} -{"sent_id": [3, 9, 4, 8, 13, 10]} -{"sent_id": [2, 3, 0, 1, 4, 5]} -{"sent_id": [5, 4, 2, 6, 1, 8]} -{"sent_id": [0, 13, 4, 3, 5, 8]} -{"sent_id": [1, 4, 5, 8, 0, 9]} -{"sent_id": [1, 4, 5, 3, 2, 0]} -{"sent_id": [2, 3, 0, 5, 1, 4]} -{"sent_id": [3, 4, 5, 2, 6, 15]} -{"sent_id": [3, 0, 1, 2, 5, 4]} -{"sent_id": [2, 1, 5, 3, 6, 4]} -{"sent_id": [0, 1, 9, 4, 3, 11]} -{"sent_id": [1, 2, 12, 3, 6, 5]} -{"sent_id": [4, 10, 2, 9, 3, 5]} -{"sent_id": [0, 2, 3, 1, 5, 4]} -{"sent_id": [4, 3, 9, 8, 11, 16]} -{"sent_id": [1, 0, 4, 2, 8, 5]} -{"sent_id": [2, 5, 0, 3, 4, 6]} -{"sent_id": [14, 2, 1, 0, 9, 10]} -{"sent_id": [2, 5, 3, 0, 1, 16]} -{"sent_id": [1, 3, 2, 5, 4, 6]} -{"sent_id": [0, 1, 2, 3, 5, 4]} -{"sent_id": [1, 2, 3, 9, 4, 5]} -{"sent_id": [12, 0, 3, 2, 1, 4]} -{"sent_id": [0, 1, 9, 6, 7, 3]} -{"sent_id": [2, 0, 3, 15, 1, 6]} -{"sent_id": [1, 2, 10, 3, 4, 22]} -{"sent_id": [2, 1, 5, 8, 7, 11]} -{"sent_id": [1, 4, 3, 2, 0, 6]} -{"sent_id": [3, 2, 4, 15, 1, 16]} -{"sent_id": [4, 1, 3, 2, 5, 6]} -{"sent_id": [1, 2, 4, 8, 6, 0]} -{"sent_id": [2, 4, 0, 1, 5, 3]} -{"sent_id": [0, 1, 15, 3, 2, 14]} -{"sent_id": [2, 3, 5, 7, 4, 6]} -{"sent_id": [0, 1, 2, 13, 5, 17]} -{"sent_id": [1, 5, 4, 2, 6, 0]} -{"sent_id": [14, 4, 0, 15, 13, 16]} -{"sent_id": [13, 5, 14, 2, 1, 3]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [0, 1, 3, 2, 4, 16]} -{"sent_id": [5, 1, 3, 15, 4, 8]} -{"sent_id": [0, 5, 17, 3, 4, 6]} -{"sent_id": [0, 5, 1, 4, 3, 19]} -{"sent_id": [1, 2, 4, 15, 10, 3]} -{"sent_id": [1, 10, 15, 8, 2, 3]} -{"sent_id": [2, 0, 3, 1, 4, 5]} -{"sent_id": [3, 5, 4, 1, 18, 0]} -{"sent_id": [0, 2, 9, 4, 1, 6]} -{"sent_id": [9, 11, 10, 2, 3, 1]} -{"sent_id": [2, 4, 1, 5, 10, 15]} -{"sent_id": [1, 9, 4, 10, 7, 3]} -{"sent_id": [2, 4, 1, 5, 11, 8]} -{"sent_id": [4, 2, 8, 0, 5, 7]} -{"sent_id": [3, 8, 4, 5, 10, 11]} -{"sent_id": [1, 13, 2, 4, 5, 0]} -{"sent_id": [1, 2, 5, 11, 10, 0]} -{"sent_id": [0, 1, 6, 4, 2, 15]} -{"sent_id": [1, 0, 2, 5, 7, 3]} -{"sent_id": [0, 13, 5, 1, 12, 4]} -{"sent_id": [3, 2, 4, 11, 1, 5]} -{"sent_id": [4, 6, 2, 3, 10, 5]} -{"sent_id": [2, 1, 5, 4, 6, 7]} -{"sent_id": [4, 1, 3, 0, 10, 9]} -{"sent_id": [6, 4, 2, 13, 5, 1]} -{"sent_id": [1, 9, 8, 20, 10, 3]} -{"sent_id": [2, 3, 11, 7, 15, 10]} -{"sent_id": [6, 0, 3, 2, 15, 12]} -{"sent_id": [4, 2, 10, 3, 1, 7]} -{"sent_id": [2, 3, 8, 7, 4, 6]} -{"sent_id": [9, 3, 1, 0, 7, 10]} -{"sent_id": [1, 14, 4, 2, 7, 5]} -{"sent_id": [4, 7, 5, 12, 1, 2]} -{"sent_id": [3, 4, 1, 16, 2, 0]} -{"sent_id": [5, 10, 14, 9, 6, 4]} -{"sent_id": [3, 2, 1, 0, 4, 7]} -{"sent_id": [1, 3, 2, 5, 10, 4]} -{"sent_id": [2, 1, 3, 4, 13, 5]} -{"sent_id": [3, 4, 1, 0, 17, 16]} -{"sent_id": [3, 9, 4, 0, 10, 2]} -{"sent_id": [2, 4, 3, 7, 0, 15]} -{"sent_id": [18, 9, 8, 2, 0, 5]} -{"sent_id": [3, 13, 2, 14, 7, 5]} -{"sent_id": [18, 7, 1, 10, 4, 11]} -{"sent_id": [1, 2, 4, 5, 11, 0]} -{"sent_id": [9, 4, 0, 2, 6, 7]} -{"sent_id": [1, 2, 11, 3, 6, 4]} -{"sent_id": [4, 2, 5, 11, 12, 3]} -{"sent_id": [2, 0, 7, 3, 10, 6]} -{"sent_id": [6, 1, 3, 8, 7, 4]} -{"sent_id": [1, 3, 2, 13, 11, 10]} -{"sent_id": [3, 12, 11, 4, 2, 0]} -{"sent_id": [1, 2, 6, 0, 7, 9]} -{"sent_id": [1, 2, 0, 4, 12, 13]} -{"sent_id": [2, 3, 15, 4, 0, 1]} -{"sent_id": [0, 6, 1, 5, 4, 8]} -{"sent_id": [0, 14, 6, 3, 2, 13]} -{"sent_id": [0, 1, 2]} -{"sent_id": [3, 4, 5, 2, 1, 6]} -{"sent_id": [9, 8, 1, 3, 6, 5]} -{"sent_id": [1, 2, 9, 4, 5, 17]} -{"sent_id": [1, 2, 0, 3, 5, 7]} -{"sent_id": [1, 3, 0, 10, 2, 13]} -{"sent_id": [1, 6, 4, 2, 3, 5]} -{"sent_id": [1, 2, 3, 10, 5, 4]} -{"sent_id": [3, 6, 0, 2, 16, 8]} -{"sent_id": [2, 1, 0, 3, 10, 15]} -{"sent_id": [5, 4, 1, 11, 2, 7]} -{"sent_id": [3, 8, 2, 4, 1, 5]} -{"sent_id": [1, 2, 5, 0, 3, 10]} -{"sent_id": [2, 0, 1, 4, 6, 8]} -{"sent_id": [1, 3, 4, 8, 10, 5]} -{"sent_id": [10, 4, 5, 2, 0, 1]} -{"sent_id": [3, 9, 2, 4, 5, 13]} -{"sent_id": [2, 4, 5, 3, 11, 14]} -{"sent_id": [9, 3, 4, 2, 1, 6]} -{"sent_id": [2, 4, 12, 0, 5, 3]} -{"sent_id": [1, 4, 9, 2, 6, 8]} -{"sent_id": [3, 10, 11, 0, 2, 7]} -{"sent_id": [0, 6, 1, 3, 2, 4]} -{"sent_id": [4, 1, 2, 14, 0, 6]} -{"sent_id": [6, 0, 10, 5, 7, 8]} -{"sent_id": [1, 4, 3, 6, 2, 5]} -{"sent_id": [8, 15, 5, 0, 11, 17]} -{"sent_id": [4, 3, 2, 1, 7, 5]} -{"sent_id": [1, 2, 3, 4, 6, 5]} -{"sent_id": [1, 4, 0, 5, 9, 11]} -{"sent_id": [1, 0, 3, 2, 6, 5]} -{"sent_id": [2, 1, 0, 4, 7, 10]} -{"sent_id": [2, 1, 3, 6, 10, 0]} -{"sent_id": [3, 7, 8, 1, 2, 4]} -{"sent_id": [1, 2, 7, 0, 6, 3]} -{"sent_id": [3, 2, 1, 0, 8, 6]} -{"sent_id": [2, 1, 4, 14, 0, 5]} -{"sent_id": [1, 4, 3, 2, 8, 0]} -{"sent_id": [4, 0, 9, 14, 1, 13]} -{"sent_id": [0, 3, 1, 2, 5, 12]} -{"sent_id": [0, 9, 4, 11, 1, 3]} -{"sent_id": [2, 9, 3, 10, 4, 0]} -{"sent_id": [2, 0, 3, 8, 7, 14]} -{"sent_id": [1, 6, 5, 7, 4, 2]} -{"sent_id": [1, 8, 11, 0, 4, 3]} -{"sent_id": [1, 2, 3, 5, 4, 7]} -{"sent_id": [0, 2, 1, 11, 9, 5]} -{"sent_id": [3, 1, 2, 7, 4, 0]} -{"sent_id": [12, 1, 3, 13, 2, 6]} -{"sent_id": [5, 6, 1, 0, 2, 3]} -{"sent_id": [4, 3, 1, 6, 5, 7]} -{"sent_id": [3, 4, 12, 1, 0, 9]} -{"sent_id": [1, 5, 9, 14, 13, 11]} -{"sent_id": [2, 3, 6, 7, 8, 11]} -{"sent_id": [7, 0, 6, 2, 3, 4]} -{"sent_id": [2, 1, 8, 0, 9, 4]} -{"sent_id": [3, 1, 12, 10, 2, 5]} -{"sent_id": [1, 5, 7, 15, 6, 0]} -{"sent_id": [3, 4, 2, 5, 1, 0]} -{"sent_id": [11, 1, 3, 10, 0, 2]} -{"sent_id": [0, 3, 16, 17, 18, 2]} -{"sent_id": [1, 2, 18, 3, 13, 10]} -{"sent_id": [1, 2, 0, 16, 3, 5]} -{"sent_id": [4, 1, 12, 5, 2, 0]} -{"sent_id": [5, 1, 6, 2, 3, 7]} -{"sent_id": [2, 3, 0, 7, 4, 1]} -{"sent_id": [2, 0, 14, 3, 4, 7]} -{"sent_id": [1, 3, 10, 5, 13, 11]} -{"sent_id": [2, 3, 4, 0, 1, 6]} -{"sent_id": [2, 3, 1, 5, 7, 4]} -{"sent_id": [0, 1, 3, 5, 12, 2]} -{"sent_id": [1, 2, 6, 4, 3, 0]} -{"sent_id": [2, 4, 5, 3, 0, 1]} -{"sent_id": [1, 3, 2, 4, 5, 7]} -{"sent_id": [1, 2, 5, 12, 3, 11]} -{"sent_id": [1, 2, 0, 10, 6, 4]} -{"sent_id": [1, 2, 3, 5, 0, 7]} -{"sent_id": [2, 3, 1, 11, 12, 6]} -{"sent_id": [1, 14, 2, 11, 6, 5]} -{"sent_id": [1, 11, 2, 7, 0, 9]} -{"sent_id": [2, 3, 1, 0, 11, 6]} -{"sent_id": [0, 2, 1, 3, 4]} -{"sent_id": [1, 2, 3, 7, 6, 5]} -{"sent_id": [4, 1, 12, 2, 15, 3]} -{"sent_id": [3, 2, 0, 13, 4, 1]} -{"sent_id": [1, 7, 2, 3, 6, 0]} -{"sent_id": [13, 3, 0, 1, 4, 2]} -{"sent_id": [1, 3, 2, 5, 4, 12]} -{"sent_id": [3, 4, 2, 1, 6, 5]} -{"sent_id": [1, 6, 3, 0, 2, 14]} -{"sent_id": [1, 2, 4, 0, 3, 13]} -{"sent_id": [1, 3, 0, 8, 12, 13]} -{"sent_id": [3, 0, 2, 1, 13, 4]} -{"sent_id": [3, 1, 2, 13, 7, 0]} -{"sent_id": [2, 3, 0, 4, 16, 8]} -{"sent_id": [2, 11, 4, 1, 0, 8]} -{"sent_id": [1, 2, 7, 3, 14, 9]} -{"sent_id": [0, 1, 3, 10, 9, 7]} -{"sent_id": [3, 1, 12, 4, 0, 2]} -{"sent_id": [0, 12, 13, 4, 1, 2]} -{"sent_id": [3, 1, 2, 0, 6, 14]} -{"sent_id": [3, 8, 1, 4, 5, 2]} -{"sent_id": [1, 9, 3, 2, 6, 10]} -{"sent_id": [1, 3, 2, 6, 8, 10]} -{"sent_id": [1, 10, 11, 5, 3, 4]} -{"sent_id": [8, 3, 0, 1, 5, 2]} -{"sent_id": [3, 2, 1, 0, 11, 7]} -{"sent_id": [1, 2, 0, 10, 9, 5]} -{"sent_id": [2, 13, 6, 1, 3, 0]} -{"sent_id": [3, 4, 16, 2, 5, 10]} -{"sent_id": [0, 1, 3, 5, 13, 15]} -{"sent_id": [1, 3, 4, 2, 5, 15]} -{"sent_id": [3, 1, 2, 0, 6, 9]} -{"sent_id": [3, 2, 8, 9, 7, 6]} -{"sent_id": [14, 4, 0, 5, 1, 3]} -{"sent_id": [12, 1, 0, 3, 2, 6]} -{"sent_id": [3, 1, 6, 0, 2, 5]} -{"sent_id": [10, 1, 11, 2, 13, 0]} -{"sent_id": [1, 0, 2, 3, 5, 4]} -{"sent_id": [1, 2, 4, 3, 0, 6]} -{"sent_id": [1, 2, 3, 5, 6, 0]} -{"sent_id": [1, 3, 2, 0, 4, 12]} -{"sent_id": [3, 5, 4, 2, 6, 7]} -{"sent_id": [10, 3, 4, 12, 11, 16]} -{"sent_id": [2, 3, 4, 0, 5, 13]} -{"sent_id": [2, 8, 3, 4, 7, 6]} -{"sent_id": [0, 13, 2, 3, 4, 7]} -{"sent_id": [3, 1, 7, 5, 9, 4]} -{"sent_id": [1, 2, 4, 8, 0, 3]} -{"sent_id": [1, 3, 5, 9, 4, 2]} -{"sent_id": [4, 3, 1, 6, 16, 17]} -{"sent_id": [9, 1, 0, 4, 2, 3]} -{"sent_id": [3, 0, 2, 1, 10, 9]} -{"sent_id": [2, 1, 4, 5, 14, 13]} -{"sent_id": [1, 3, 2, 4, 6, 8]} -{"sent_id": [1, 2, 4, 3, 7, 9]} -{"sent_id": [0, 13, 1, 4, 3, 6]} -{"sent_id": [1, 2, 9, 14, 0, 17]} -{"sent_id": [1, 0, 4, 5, 3, 2]} -{"sent_id": [1, 13, 2, 11, 4, 12]} -{"sent_id": [2, 5, 3, 11, 6, 0]} -{"sent_id": [2, 1, 3, 8, 6, 11]} -{"sent_id": [5, 4, 11, 0, 12, 2]} -{"sent_id": [17, 7, 5, 12, 13, 1]} -{"sent_id": [0, 3, 1, 6, 2, 9]} -{"sent_id": [0, 1, 2, 12, 13, 3]} -{"sent_id": [3, 4, 9, 2, 10, 5]} -{"sent_id": [3, 1, 0, 4, 2, 11]} -{"sent_id": [13, 0, 3, 2, 4, 5]} -{"sent_id": [0, 1, 2, 3, 8, 4]} -{"sent_id": [1, 2, 3, 4, 0, 11]} -{"sent_id": [1, 4, 2, 0, 8, 5]} -{"sent_id": [4, 0, 1, 2, 3, 5]} -{"sent_id": [3, 1, 9, 0, 2, 4]} -{"sent_id": [3, 2, 1, 11, 12, 6]} -{"sent_id": [10, 3, 1, 4, 2, 14]} -{"sent_id": [7, 0, 1, 2, 20, 4]} -{"sent_id": [4, 0, 1, 8, 17, 2]} -{"sent_id": [2, 3, 9, 0, 13, 10]} -{"sent_id": [3, 17, 18, 19, 5, 13]} -{"sent_id": [2, 1, 3, 5, 9, 0]} -{"sent_id": [3, 7, 1, 2, 13, 8]} -{"sent_id": [1, 9, 3, 11, 4, 10]} -{"sent_id": [2, 1, 3, 5, 6, 7]} -{"sent_id": [9, 3, 0, 5, 4, 8]} -{"sent_id": [3, 1, 2, 13, 11, 14]} -{"sent_id": [4, 0, 6, 3, 1, 12]} -{"sent_id": [3, 1, 10, 5, 2, 4]} -{"sent_id": [7, 8, 10, 9, 0, 1]} -{"sent_id": [5, 2, 0, 3, 16, 8]} -{"sent_id": [2, 3, 4, 5, 14, 8]} -{"sent_id": [10, 14, 3, 4, 18, 1]} -{"sent_id": [3, 1, 11, 2, 15, 9]} -{"sent_id": [7, 8, 15, 4, 3, 12]} -{"sent_id": [3, 2, 5, 4, 0, 8]} -{"sent_id": [3, 5, 13, 2, 7, 6]} -{"sent_id": [3, 0, 2, 1, 6, 5]} -{"sent_id": [1, 2, 13, 3, 14, 0]} -{"sent_id": [0, 1, 4, 5, 14, 7]} -{"sent_id": [3, 0, 1, 16, 15, 2]} -{"sent_id": [4, 2, 1, 13, 6, 12]} -{"sent_id": [4, 1, 3, 5, 7, 15]} -{"sent_id": [2, 6, 4, 1, 12, 9]} -{"sent_id": [1, 2, 3, 10, 0, 4]} -{"sent_id": [1, 0, 17, 4, 2, 12]} -{"sent_id": [2, 1, 4, 0, 3, 21]} -{"sent_id": [0, 4, 3, 19, 18, 1]} -{"sent_id": [1, 6, 7, 0, 11, 12]} -{"sent_id": [1, 2, 4, 13, 0, 5]} -{"sent_id": [3, 4, 2, 0, 1, 15]} -{"sent_id": [1, 2, 4, 5, 0, 13]} -{"sent_id": [0, 13, 11, 1, 3, 2]} -{"sent_id": [2, 5, 3, 4, 7, 6]} -{"sent_id": [0, 4, 6, 7, 5, 12]} -{"sent_id": [5, 0, 19, 20, 7, 24]} -{"sent_id": [2, 1, 4, 7, 5, 6]} -{"sent_id": [1, 5, 3, 11, 4, 7]} -{"sent_id": [0, 2, 3, 9, 1, 5]} -{"sent_id": [0, 1, 9, 3, 7, 5]} -{"sent_id": [4, 3, 0, 2, 7, 6]} -{"sent_id": [4, 0, 1, 2, 8, 7]} -{"sent_id": [5, 6, 16, 4, 3, 15]} -{"sent_id": [12, 0, 1, 13, 11, 2]} -{"sent_id": [3, 2, 0, 1, 8, 12]} -{"sent_id": [3, 12, 0, 13, 1, 2]} -{"sent_id": [9, 12, 4, 0, 17, 7]} -{"sent_id": [3, 0, 5, 4, 1, 8]} -{"sent_id": [3, 0, 1, 6, 2, 5]} -{"sent_id": [1, 2, 0, 11, 6, 4]} -{"sent_id": [2, 11, 10, 3, 4, 7]} -{"sent_id": [1, 0, 3, 11, 6, 4]} -{"sent_id": [4, 3, 2, 7, 13, 0]} -{"sent_id": [1, 4, 3, 2, 0, 6]} -{"sent_id": [12, 4, 3, 2, 1, 7]} -{"sent_id": [3, 1, 4, 8, 2, 9]} -{"sent_id": [2, 1, 11, 8, 14, 7]} -{"sent_id": [3, 4, 8, 2, 5, 0]} -{"sent_id": [0, 10, 5, 4, 15, 3]} -{"sent_id": [2, 5, 6, 0, 11, 12]} -{"sent_id": [0, 6, 17, 10, 1, 5]} -{"sent_id": [1, 2, 0, 4, 5, 6]} -{"sent_id": [1, 10, 4, 2, 11, 7]} -{"sent_id": [1, 2, 4, 5, 19, 15]} -{"sent_id": [1, 0, 2, 12, 3, 11]} -{"sent_id": [3, 0, 4, 1, 15, 11]} -{"sent_id": [7, 8, 1, 3, 4, 14]} -{"sent_id": [0, 2, 4, 1, 14, 5]} -{"sent_id": [1, 2, 3, 8, 0, 16]} -{"sent_id": [3, 2, 0, 4, 5, 7]} -{"sent_id": [1, 4, 2, 3, 7, 0]} -{"sent_id": [4, 3, 5, 12, 1, 2]} -{"sent_id": [4, 13, 5, 12, 11, 6]} -{"sent_id": [4, 1, 2, 3, 0, 5]} -{"sent_id": [6, 5, 3, 8, 4, 7]} -{"sent_id": [1, 2, 3, 14, 6, 4]} -{"sent_id": [4, 1, 5, 8, 17, 3]} -{"sent_id": [0, 4, 12, 1, 7, 5]} -{"sent_id": [3, 1, 0, 2, 9, 14]} -{"sent_id": [4, 1, 5, 3, 7, 6]} -{"sent_id": [3, 2, 4, 12, 11, 1]} -{"sent_id": [2, 3, 4, 6, 11, 7]} -{"sent_id": [0, 3, 1, 2, 11, 6]} -{"sent_id": [2, 16, 3, 0, 1, 10]} -{"sent_id": [1, 2, 4, 11, 9, 0]} -{"sent_id": [3, 0, 12, 1, 4, 2]} -{"sent_id": [4, 2, 12, 3, 5, 0]} -{"sent_id": [0, 1, 8, 3, 7, 2]} -{"sent_id": [3, 11, 2, 5, 1, 8]} -{"sent_id": [0, 12, 3, 13, 1, 14]} -{"sent_id": [2, 4, 11, 1, 3, 5]} -{"sent_id": [3, 2, 0, 5, 12, 14]} -{"sent_id": [3, 1, 14, 0, 4, 5]} -{"sent_id": [2, 0, 11, 1, 17, 3]} -{"sent_id": [0, 1, 2, 8, 4, 12]} -{"sent_id": [1, 13, 3, 2, 4, 5]} -{"sent_id": [0, 6, 2, 1, 4, 5]} -{"sent_id": [2, 1, 6, 0, 3, 8]} -{"sent_id": [4, 1, 2, 11, 9, 15]} -{"sent_id": [1, 3, 0, 4, 5, 9]} -{"sent_id": [2, 1, 4, 3, 5, 7]} -{"sent_id": [2, 3, 11, 9, 6, 1]} -{"sent_id": [3, 11, 1, 2, 0, 4]} -{"sent_id": [1, 2, 4, 6, 3, 5]} -{"sent_id": [5, 2, 4, 9, 8, 6]} -{"sent_id": [1, 3, 4, 0, 12, 5]} -{"sent_id": [0, 4, 5, 3, 2, 1]} -{"sent_id": [2, 3, 0, 6, 5, 4]} -{"sent_id": [4, 6, 14, 5, 13, 11]} -{"sent_id": [1, 5, 14, 8, 2, 13]} -{"sent_id": [4, 3, 0, 8, 10, 1]} -{"sent_id": [3, 1, 2, 4, 5, 12]} -{"sent_id": [4, 0, 1, 5, 17, 2]} -{"sent_id": [2, 3, 6, 8, 4, 0]} -{"sent_id": [2, 1, 0, 3, 5, 6]} -{"sent_id": [12, 3, 1, 0, 6, 2]} -{"sent_id": [4, 3, 2, 5, 9, 7]} -{"sent_id": [3, 0, 1, 2, 11, 5]} -{"sent_id": [6, 1, 10, 2, 4, 3]} -{"sent_id": [1, 3, 2, 6, 15, 12]} -{"sent_id": [3, 1, 2, 8, 0, 6]} -{"sent_id": [4, 0, 1, 8, 2, 3]} -{"sent_id": [1, 4, 3, 10, 2, 5]} -{"sent_id": [2, 11, 10, 0, 7, 1]} -{"sent_id": [1, 2, 0, 4, 5, 13]} -{"sent_id": [3, 2, 10, 8, 9, 1]} -{"sent_id": [5, 9, 8, 10, 11, 0]} -{"sent_id": [3, 2, 1, 13, 8, 4]} -{"sent_id": [2, 14, 4, 3, 5, 15]} -{"sent_id": [3, 2, 1, 9, 0, 10]} -{"sent_id": [0, 3, 4, 17, 1, 2]} -{"sent_id": [9, 5, 15, 1, 6, 4]} -{"sent_id": [3, 8, 1, 0, 10, 5]} -{"sent_id": [4, 5, 1, 6, 0, 3]} -{"sent_id": [1, 2, 4, 3, 5, 0]} -{"sent_id": [0, 3, 1, 11, 2, 9]} -{"sent_id": [3, 4, 2, 8, 7, 0]} -{"sent_id": [4, 14, 1, 15, 6, 7]} -{"sent_id": [1, 5, 2, 7, 3, 0]} -{"sent_id": [9, 3, 4, 7, 2, 8]} -{"sent_id": [1, 2, 6, 3, 10, 12]} -{"sent_id": [1, 2, 4, 0, 16, 9]} -{"sent_id": [1, 2, 3, 7, 10, 8]} -{"sent_id": [1, 2, 12, 3, 9, 6]} -{"sent_id": [2, 0, 1, 5, 6, 4]} -{"sent_id": [1, 0, 3, 2, 11, 9]} -{"sent_id": [4, 8, 13, 3, 14, 9]} -{"sent_id": [6, 2, 16, 4, 5, 10]} -{"sent_id": [2, 1, 10, 5, 4, 6]} -{"sent_id": [0, 1, 2, 4, 5, 3]} -{"sent_id": [9, 1, 2, 6, 10, 11]} -{"sent_id": [1, 4, 2, 3, 6, 5]} -{"sent_id": [4, 1, 10, 2, 3, 5]} -{"sent_id": [3, 5, 1, 4, 0, 9]} -{"sent_id": [5, 4, 7, 3, 9, 1]} -{"sent_id": [2, 6, 3, 9, 1, 7]} -{"sent_id": [3, 0, 8, 10, 1, 2]} -{"sent_id": [5, 0, 8, 4, 11, 10]} -{"sent_id": [0, 13, 4, 5, 1, 2]} -{"sent_id": [3, 4, 5, 2, 7, 6]} -{"sent_id": [3, 4, 0, 1, 2, 10]} -{"sent_id": [2, 1, 0, 7, 3, 4]} -{"sent_id": [4, 1, 0, 3, 9, 23]} -{"sent_id": [1, 0, 12, 2, 3, 22]} -{"sent_id": [3, 2, 4, 0, 1, 5]} -{"sent_id": [1, 3, 2, 0, 5, 6]} -{"sent_id": [0, 16, 3, 1, 4, 6]} -{"sent_id": [1, 2, 7, 9, 3, 5]} -{"sent_id": [2, 0, 1, 3, 4, 10]} -{"sent_id": [3, 4, 0, 1, 16, 17]} -{"sent_id": [2, 1, 0, 16, 5, 6]} -{"sent_id": [1, 2, 13, 3, 8, 11]} -{"sent_id": [4, 5, 1, 14, 8, 7]} -{"sent_id": [6, 3, 4, 1, 7, 15]} -{"sent_id": [1, 2, 4, 5, 3, 9]} -{"sent_id": [2, 1, 5, 14, 0, 15]} -{"sent_id": [0, 9, 1, 10, 8, 3]} -{"sent_id": [3, 1, 2, 4, 0, 17]} -{"sent_id": [6, 10, 1, 0, 5, 15]} -{"sent_id": [2, 4, 0, 5, 15, 1]} -{"sent_id": [1, 3, 6, 4, 5, 8]} -{"sent_id": [2, 1, 7, 6, 8, 12]} -{"sent_id": [1, 6, 2, 14, 7, 3]} -{"sent_id": [0, 4, 3, 1, 13, 12]} -{"sent_id": [4, 2, 1, 3, 6, 14]} -{"sent_id": [1, 6, 0, 2, 13, 4]} -{"sent_id": [1, 2, 3, 9, 5, 12]} -{"sent_id": [4, 5, 6, 11, 9, 7]} -{"sent_id": [3, 5, 2, 6, 7, 11]} -{"sent_id": [2, 0, 1, 4, 3, 9]} -{"sent_id": [0, 1, 3, 10, 12, 13]} -{"sent_id": [1, 2, 5, 4, 6, 13]} -{"sent_id": [1, 4, 2, 5, 3, 0]} -{"sent_id": [0, 3, 4, 11, 5, 8]} -{"sent_id": [0, 2, 3, 9, 8, 1]} -{"sent_id": [1, 7, 12, 2, 9, 19]} -{"sent_id": [3, 2, 12, 6, 5, 4]} -{"sent_id": [1, 23, 0, 2, 3, 4]} -{"sent_id": [8, 0, 2, 3, 4, 1]} -{"sent_id": [6, 2, 3, 8, 4, 7]} -{"sent_id": [3, 1, 0, 7, 4, 8]} -{"sent_id": [3, 1, 2, 0, 9, 5]} -{"sent_id": [1, 7, 0, 2, 3, 8]} -{"sent_id": [13, 5, 9, 2, 6, 3]} -{"sent_id": [0, 4, 2, 3, 7, 1]} -{"sent_id": [1, 3, 0, 13, 2, 10]} -{"sent_id": [1, 5, 3, 2, 0, 4]} -{"sent_id": [0, 1, 2, 10, 16, 3]} -{"sent_id": [1, 4, 2, 5, 0, 3]} -{"sent_id": [3, 2, 0, 1, 4]} -{"sent_id": [2, 1, 6, 4, 5, 0]} -{"sent_id": [2, 4, 11, 0, 3, 5]} -{"sent_id": [4, 2, 15, 3, 1, 18]} -{"sent_id": [3, 4, 0, 5, 13, 1]} -{"sent_id": [1, 2, 7, 0, 10, 8]} -{"sent_id": [1, 9, 15, 10, 8, 5]} -{"sent_id": [3, 6, 10, 4, 7, 8]} -{"sent_id": [3, 11, 2, 5, 4, 10]} -{"sent_id": [2, 3, 4, 6, 0, 5]} -{"sent_id": [4, 0, 1, 2, 6, 7]} -{"sent_id": [3, 1, 0, 14, 8, 11]} -{"sent_id": [9, 10, 11, 13, 24, 0]} -{"sent_id": [1, 2, 7, 5, 0, 10]} -{"sent_id": [4, 16, 1, 3, 17, 8]} -{"sent_id": [2, 4, 5, 6, 8, 1]} -{"sent_id": [1, 3, 27, 2, 26, 25]} -{"sent_id": [6, 2, 5, 3, 1, 8]} -{"sent_id": [3, 8, 4, 2, 5, 7]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [3, 0, 1, 2, 4, 7]} -{"sent_id": [1, 3, 0, 5, 7, 6]} -{"sent_id": [8, 4, 1, 9, 11, 6]} -{"sent_id": [2, 1, 3, 4, 9, 6]} -{"sent_id": [1, 2, 6, 0, 5, 8]} -{"sent_id": [2, 8, 3, 7, 6, 4]} -{"sent_id": [10, 2, 5, 3, 1, 6]} -{"sent_id": [7, 14, 13, 8, 9, 11]} -{"sent_id": [1, 2, 11, 5, 6, 4]} -{"sent_id": [0, 16, 5, 2, 15, 4]} -{"sent_id": [1, 2, 0, 4, 3, 5]} -{"sent_id": [4, 15, 3, 6, 12, 5]} -{"sent_id": [3, 2, 4, 1, 0, 5]} -{"sent_id": [1, 3, 4, 2, 6, 7]} -{"sent_id": [3, 6, 4, 9, 7, 1]} -{"sent_id": [11, 1, 2, 0, 3, 5]} -{"sent_id": [2, 1, 6, 7, 0, 9]} -{"sent_id": [0, 17, 11, 10, 5, 6]} -{"sent_id": [1, 4, 11, 2, 0, 6]} -{"sent_id": [0, 3, 5, 4, 1, 6]} -{"sent_id": [3, 1, 0, 5, 4, 2]} -{"sent_id": [2, 1, 5, 6, 4, 9]} -{"sent_id": [0, 1, 4, 2, 5, 3]} -{"sent_id": [4, 1, 6, 5, 0, 3]} -{"sent_id": [1, 3, 4, 2, 13, 0]} -{"sent_id": [3, 2, 1, 4, 5, 8]} -{"sent_id": [11, 5, 0, 10, 8, 7]} -{"sent_id": [3, 1, 8, 11, 2, 9]} -{"sent_id": [13, 11, 10, 0, 15, 2]} -{"sent_id": [7, 14, 2, 3, 4, 0]} -{"sent_id": [2, 4, 3, 5, 1, 8]} -{"sent_id": [1, 2, 4, 16, 6, 17]} -{"sent_id": [1, 3, 16, 14, 0, 19]} -{"sent_id": [1, 4, 2, 3, 9, 8]} -{"sent_id": [0, 6, 11, 2, 3, 5]} -{"sent_id": [2, 3, 1, 5, 4, 7]} -{"sent_id": [3, 7, 1, 2, 0, 16]} -{"sent_id": [14, 3, 1, 0, 2, 6]} -{"sent_id": [0, 2, 15, 3, 9, 17]} -{"sent_id": [1, 2, 6, 13, 4, 3]} -{"sent_id": [1, 8, 0, 3, 7, 4]} -{"sent_id": [3, 2, 4, 9, 5, 0]} -{"sent_id": [7, 2, 1, 0, 4, 3]} -{"sent_id": [0, 8, 10, 7, 3, 9]} -{"sent_id": [1, 2, 3, 7, 6, 4]} -{"sent_id": [3, 4, 2, 0, 7, 5]} -{"sent_id": [1, 0, 3, 5, 2, 7]} -{"sent_id": [2, 1, 5, 9, 8, 0]} -{"sent_id": [1, 4, 5, 6, 2, 7]} -{"sent_id": [1, 3, 4, 5, 9, 7]} -{"sent_id": [5, 13, 1, 6, 3, 4]} -{"sent_id": [2, 6, 1, 7, 0, 10]} -{"sent_id": [3, 11, 2, 5, 0, 12]} -{"sent_id": [0, 7, 14, 19, 1, 5]} -{"sent_id": [1, 2, 3, 4, 5, 6]} -{"sent_id": [2, 0, 4, 5, 3, 1]} -{"sent_id": [3, 0, 2, 1, 13, 8]} -{"sent_id": [3, 11, 1, 4, 10, 2]} -{"sent_id": [2, 1, 4, 5, 3, 0]} -{"sent_id": [4, 2, 0, 8, 1, 5]} -{"sent_id": [1, 0, 3, 11, 2, 4]} -{"sent_id": [2, 13, 0, 4, 1, 3]} -{"sent_id": [1, 6, 4, 2, 0, 5]} -{"sent_id": [1, 6, 3, 5, 8, 16]} -{"sent_id": [4, 2, 11, 1, 0, 3]} -{"sent_id": [4, 0, 16, 17, 3, 1]} -{"sent_id": [2, 1, 5, 6, 11, 0]} -{"sent_id": [1, 4, 2, 5, 0, 3]} -{"sent_id": [1, 2, 0, 13, 6, 7]} -{"sent_id": [11, 7, 3, 6, 10, 0]} -{"sent_id": [0, 1, 2, 4, 3, 8]} -{"sent_id": [1, 0, 3, 2, 4, 8]} -{"sent_id": [1, 4, 3, 2, 0, 11]} -{"sent_id": [0, 2, 1, 7, 3, 9]} -{"sent_id": [0, 1, 4, 2, 3, 7]} -{"sent_id": [3, 2, 0, 4, 10, 1]} -{"sent_id": [2, 5, 6, 8, 4, 1]} -{"sent_id": [0, 1, 5, 10, 4, 6]} -{"sent_id": [3, 1, 2, 9, 10, 4]} -{"sent_id": [3, 2, 4, 16, 1, 17]} -{"sent_id": [1, 2, 8, 6, 3, 5]} -{"sent_id": [2, 3, 4, 0, 13, 5]} -{"sent_id": [2, 3, 5, 6, 4, 11]} -{"sent_id": [1, 9, 4, 2, 0, 5]} -{"sent_id": [1, 2, 5, 4, 3, 15]} -{"sent_id": [1, 3, 4, 2, 8, 6]} -{"sent_id": [1, 4, 11, 2, 3, 5]} -{"sent_id": [4, 1, 2, 5, 6, 3]} -{"sent_id": [3, 2, 4, 7, 1, 6]} -{"sent_id": [0, 8, 16, 4, 11, 9]} -{"sent_id": [4, 3, 5, 6, 7, 8]} -{"sent_id": [3, 9, 15, 0, 2, 1]} -{"sent_id": [4, 0, 7, 5, 1, 6]} -{"sent_id": [1, 4, 0, 3, 7, 8]} -{"sent_id": [1, 9, 2, 8, 3, 5]} -{"sent_id": [1, 3, 2, 0, 14, 4]} -{"sent_id": [1, 4, 11, 2, 3, 10]} -{"sent_id": [3, 5, 1, 2, 7, 0]} -{"sent_id": [1, 7, 6, 0, 9, 5]} -{"sent_id": [15, 5, 4, 1, 3, 8]} -{"sent_id": [1, 0, 2, 3, 8, 7]} -{"sent_id": [0, 2, 1, 5, 9, 3]} -{"sent_id": [0, 2, 1, 7, 5, 10]} -{"sent_id": [2, 4, 3, 9, 1, 10]} -{"sent_id": [1, 0, 8, 6, 5, 13]} -{"sent_id": [2, 1, 0, 4, 13, 3]} -{"sent_id": [1, 2, 6, 7, 5, 4]} -{"sent_id": [1, 2, 3, 9, 4, 0]} -{"sent_id": [4, 14, 2, 3, 1, 9]} -{"sent_id": [3, 2, 0, 1, 6, 15]} -{"sent_id": [1, 9, 11, 5, 3, 16]} -{"sent_id": [3, 10, 14, 2, 9, 5]} -{"sent_id": [2, 3, 8, 1, 0, 7]} -{"sent_id": [1, 2, 0, 15, 4, 11]} -{"sent_id": [4, 5, 1, 0, 9, 18]} -{"sent_id": [0, 5, 4, 1, 9, 3]} -{"sent_id": [16, 15, 5, 10, 2, 4]} -{"sent_id": [3, 1, 4, 0, 2, 13]} -{"sent_id": [1, 3, 11, 2, 9, 4]} -{"sent_id": [2, 1, 5, 7, 3, 6]} -{"sent_id": [10, 5, 7, 3, 9, 4]} -{"sent_id": [1, 5, 2, 6, 0, 4]} -{"sent_id": [2, 1, 4, 5, 3, 9]} -{"sent_id": [13, 1, 19, 2, 3, 12]} -{"sent_id": [0, 3, 2, 5, 7, 4]} -{"sent_id": [6, 4, 11, 1, 10, 0]} -{"sent_id": [8, 3, 10, 5, 2, 4]} -{"sent_id": [7, 0, 8, 6, 3, 1]} -{"sent_id": [3, 0, 4, 1, 2, 6]} -{"sent_id": [1, 4, 2, 11, 13, 8]} -{"sent_id": [2, 4, 5, 3, 8, 11]} -{"sent_id": [1, 2, 6, 3, 5, 7]} -{"sent_id": [3, 16, 2, 1, 8, 5]} -{"sent_id": [3, 0, 5, 7, 14, 4]} -{"sent_id": [2, 4, 11, 1, 0, 9]} -{"sent_id": [1, 2, 4, 8, 5, 7]} -{"sent_id": [1, 2, 8, 17, 9, 18]} -{"sent_id": [6, 1, 2, 10, 0, 9]} -{"sent_id": [0, 1, 4, 3, 5, 10]} -{"sent_id": [1, 3, 2, 4, 6, 0]} -{"sent_id": [1, 2, 6, 7, 13, 3]} -{"sent_id": [3, 4, 2, 10, 6, 12]} -{"sent_id": [3, 4, 16, 14, 0, 2]} -{"sent_id": [3, 4, 1, 2, 5, 6]} -{"sent_id": [1, 6, 18, 7, 10, 2]} -{"sent_id": [1, 0, 11, 5, 12, 6]} -{"sent_id": [2, 6, 7, 23, 0, 13]} -{"sent_id": [4, 5, 8, 0, 7, 14]} -{"sent_id": [11, 6, 3, 0, 1, 5]} -{"sent_id": [3, 6, 4, 9, 7, 2]} -{"sent_id": [3, 1, 12, 6, 4, 2]} -{"sent_id": [1, 2, 3, 4, 10, 6]} -{"sent_id": [2, 3, 4, 5, 9, 6]} -{"sent_id": [0, 4, 6, 8, 3, 2]} -{"sent_id": [1, 9, 2, 10, 3, 13]} -{"sent_id": [1, 4, 2, 3, 8, 10]} -{"sent_id": [1, 0, 3, 6, 8, 5]} -{"sent_id": [5, 6, 10, 1, 16, 7]} -{"sent_id": [4, 5, 1, 16, 0, 3]} -{"sent_id": [15, 0, 12, 6, 1, 7]} -{"sent_id": [7, 6, 12, 3, 2, 8]} -{"sent_id": [1, 3, 8, 0, 12, 4]} -{"sent_id": [2, 4, 5, 3, 7, 1]} -{"sent_id": [1, 3, 4, 5, 12, 6]} -{"sent_id": [1, 5, 10, 2, 9, 4]} -{"sent_id": [2, 0, 5, 3, 1, 13]} -{"sent_id": [1, 4, 3, 7, 2, 15]} -{"sent_id": [5, 7, 1, 4, 3, 0]} -{"sent_id": [4, 1, 9, 13, 16, 8]} -{"sent_id": [3, 1, 7, 10, 9, 4]} -{"sent_id": [2, 1, 0, 3, 6, 4]} -{"sent_id": [3, 10, 1, 11, 0, 2]} -{"sent_id": [0, 3, 9, 8, 1, 4]} -{"sent_id": [4, 0, 2, 3, 13, 14]} -{"sent_id": [3, 0, 12, 7, 11, 8]} -{"sent_id": [2, 3, 0, 18, 13, 6]} -{"sent_id": [0, 3, 2, 6, 14, 5]} -{"sent_id": [3, 9, 2, 4, 1, 0]} -{"sent_id": [3, 1, 2, 4, 0, 6]} -{"sent_id": [1, 2, 4, 5, 7, 3]} -{"sent_id": [6, 1, 0, 8, 4, 2]} -{"sent_id": [2, 14, 0, 19, 5, 4]} -{"sent_id": [3, 1, 2, 5, 0, 4]} -{"sent_id": [3, 4, 6, 1, 11, 9]} -{"sent_id": [2, 3, 0, 1, 4, 5]} -{"sent_id": [3, 15, 7, 14, 16, 8]} -{"sent_id": [3, 4, 1, 2, 13, 6]} -{"sent_id": [3, 19, 4, 20, 5, 8]} -{"sent_id": [3, 14, 15, 9, 2, 4]} -{"sent_id": [1, 4, 0, 11, 5, 9]} -{"sent_id": [2, 3, 1, 0, 4, 13]} -{"sent_id": [2, 12, 14, 1, 4, 19]} -{"sent_id": [6, 1, 8, 14, 9, 0]} -{"sent_id": [4, 2, 9, 5, 7, 10]} -{"sent_id": [5, 4, 14, 2, 11, 15]} -{"sent_id": [3, 2, 9, 8, 16, 12]} -{"sent_id": [0, 3, 11, 13, 1, 4]} -{"sent_id": [2, 4, 1, 6, 8, 5]} -{"sent_id": [3, 2, 7, 9, 0, 8]} -{"sent_id": [2, 4, 9, 16, 10, 1]} -{"sent_id": [9, 11, 3, 2, 1, 0]} -{"sent_id": [1, 0, 3, 5, 16, 9]} -{"sent_id": [1, 0, 4, 3, 2, 5]} -{"sent_id": [4, 1, 0, 16, 3, 12]} -{"sent_id": [3, 2, 10, 6, 1, 5]} -{"sent_id": [3, 5, 6, 17, 7, 14]} -{"sent_id": [13, 0, 3, 4, 1, 2]} -{"sent_id": [2, 1, 0, 4, 8, 5]} -{"sent_id": [1, 7, 6, 2, 0, 9]} -{"sent_id": [3, 0, 1, 2, 5, 8]} -{"sent_id": [2, 1, 0, 5, 3, 7]} -{"sent_id": [0, 5, 4, 10, 3, 1]} -{"sent_id": [2, 1, 4, 6, 5, 10]} -{"sent_id": [4, 0, 5, 14, 1, 2]} -{"sent_id": [2, 1, 3, 14, 13, 0]} -{"sent_id": [2, 0, 3, 8, 1, 7]} -{"sent_id": [3, 1, 0, 2, 8, 4]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [1, 5, 3, 8, 4, 2]} -{"sent_id": [2, 1, 3, 4, 8, 10]} -{"sent_id": [2, 0, 4, 3, 9, 1]} -{"sent_id": [10, 21, 11, 16, 0, 23]} -{"sent_id": [1, 2, 7, 0, 9, 5]} -{"sent_id": [2, 4, 6, 7, 9, 1]} -{"sent_id": [5, 6, 3, 4, 1, 7]} -{"sent_id": [3, 4, 1, 0, 14, 8]} -{"sent_id": [2, 1, 3, 14, 4, 16]} -{"sent_id": [1, 4, 7, 0, 3, 2]} -{"sent_id": [1, 4, 5, 2, 3, 8]} -{"sent_id": [2, 3, 15, 4, 16, 1]} -{"sent_id": [0, 2, 10, 4, 9, 5]} -{"sent_id": [1, 3, 0, 8, 9, 4]} -{"sent_id": [1, 2, 7, 3, 8, 0]} -{"sent_id": [1, 2, 6, 15, 4, 0]} -{"sent_id": [3, 5, 7, 2, 4, 18]} -{"sent_id": [1, 3, 2, 4, 8, 5]} -{"sent_id": [3, 4, 6, 5, 7, 2]} -{"sent_id": [1, 4, 2, 0, 3, 5]} -{"sent_id": [1, 2, 5, 0, 3, 4]} -{"sent_id": [2, 4, 8, 3, 5, 0]} -{"sent_id": [3, 0, 1, 2, 4, 5]} -{"sent_id": [4, 5, 6, 1, 0, 10]} -{"sent_id": [4, 10, 9, 5, 8, 1]} -{"sent_id": [3, 7, 1, 4, 2, 0]} -{"sent_id": [2, 0, 3, 8, 4, 12]} -{"sent_id": [2, 4, 1, 6, 7, 12]} -{"sent_id": [3, 1, 2, 10, 5, 9]} -{"sent_id": [1, 2, 8, 11, 7, 4]} -{"sent_id": [1, 2, 9, 14, 0, 5]} -{"sent_id": [1, 2, 19, 8, 10, 3]} -{"sent_id": [7, 9, 3, 14, 16, 8]} -{"sent_id": [8, 0, 4, 14, 7, 3]} -{"sent_id": [9, 3, 0, 10, 8, 1]} -{"sent_id": [4, 2, 1, 3, 10, 11]} -{"sent_id": [2, 6, 5, 7, 10, 3]} -{"sent_id": [1, 9, 2, 3, 7, 8]} -{"sent_id": [6, 7, 13, 0, 5, 4]} -{"sent_id": [1, 2, 6, 4, 7, 5]} -{"sent_id": [1, 9, 0, 2, 3, 10]} -{"sent_id": [0, 7, 3, 1, 10, 4]} -{"sent_id": [3, 2, 13, 4, 5, 1]} -{"sent_id": [0, 4, 2, 1, 6, 3]} -{"sent_id": [9, 3, 1, 10, 0, 2]} -{"sent_id": [2, 4, 3, 1, 6, 5]} -{"sent_id": [1, 6, 4, 3, 12, 15]} -{"sent_id": [2, 1, 3, 0, 14, 15]} -{"sent_id": [2, 1, 5, 3, 0, 6]} -{"sent_id": [4, 1, 3, 2, 7, 5]} -{"sent_id": [1, 2, 3, 5, 0, 6]} -{"sent_id": [3, 9, 2, 6, 14, 4]} -{"sent_id": [1, 0, 3, 14, 15, 13]} -{"sent_id": [3, 4, 5, 0, 1, 16]} -{"sent_id": [3, 1, 2, 4, 0, 8]} -{"sent_id": [3, 4, 1, 2, 0, 12]} -{"sent_id": [2, 3, 0, 4, 5, 6]} -{"sent_id": [3, 4, 1, 2, 0, 5]} -{"sent_id": [1, 4, 2, 3, 12, 9]} -{"sent_id": [15, 0, 2, 3, 4, 1]} -{"sent_id": [0, 1, 4, 8, 14, 3]} -{"sent_id": [4, 3, 0, 1, 8, 2]} -{"sent_id": [1, 3, 0, 2, 5, 4]} -{"sent_id": [3, 0, 13, 1, 2, 4]} -{"sent_id": [12, 2, 11, 1, 8, 3]} -{"sent_id": [2, 3, 4, 0, 1, 16]} -{"sent_id": [6, 1, 2, 3, 4, 0]} -{"sent_id": [3, 12, 13, 4, 0, 1]} -{"sent_id": [0, 2, 3, 10, 9, 4]} -{"sent_id": [5, 2, 3, 11, 0, 12]} -{"sent_id": [9, 3, 6, 10, 4, 5]} -{"sent_id": [0, 3, 5, 1, 2, 4]} -{"sent_id": [4, 10, 11, 3, 0, 1]} -{"sent_id": [0, 6, 5, 2, 3, 1]} -{"sent_id": [3, 0, 1, 2, 5, 4]} -{"sent_id": [3, 2, 0, 8, 11, 16]} -{"sent_id": [1, 0, 13, 5, 6, 12]} -{"sent_id": [8, 3, 14, 2, 6, 5]} -{"sent_id": [2, 1, 5, 3, 4, 0]} -{"sent_id": [1, 2, 11, 0, 3, 8]} -{"sent_id": [5, 1, 14, 2, 0, 4]} -{"sent_id": [4, 9, 8, 1, 3, 6]} -{"sent_id": [0, 2, 1, 6, 14, 7]} -{"sent_id": [3, 2, 4, 11, 12, 1]} -{"sent_id": [5, 1, 10, 0, 3, 4]} -{"sent_id": [1, 5, 2, 4, 6, 0]} -{"sent_id": [0, 16, 1, 4, 5, 9]} -{"sent_id": [2, 4, 3, 1, 0, 5]} -{"sent_id": [1, 9, 2, 13, 0, 12]} -{"sent_id": [2, 1, 13, 4, 12, 14]} -{"sent_id": [4, 9, 1, 5, 2, 0]} -{"sent_id": [1, 2, 3, 9, 0, 4]} -{"sent_id": [4, 5, 3, 0, 9, 1]} -{"sent_id": [3, 0, 1, 2, 12, 4]} -{"sent_id": [1, 4, 3, 0, 5, 2]} -{"sent_id": [0, 3, 4, 10, 2, 9]} -{"sent_id": [2, 6, 0, 5, 1, 4]} -{"sent_id": [0, 3, 4, 16, 1, 8]} -{"sent_id": [12, 0, 3, 5, 4, 13]} -{"sent_id": [1, 2, 9, 4, 10, 3]} -{"sent_id": [1, 0, 3, 5, 2, 8]} -{"sent_id": [2, 3, 7, 12, 1, 5]} -{"sent_id": [3, 2, 1, 5, 18, 0]} -{"sent_id": [0, 1, 2, 10, 6, 5]} -{"sent_id": [3, 0, 7, 2, 9, 13]} -{"sent_id": [3, 1, 5, 0, 6, 7]} -{"sent_id": [2, 3, 4, 5, 0, 6]} -{"sent_id": [3, 2, 1, 4, 5, 13]} -{"sent_id": [1, 2, 3, 10, 6, 5]} -{"sent_id": [1, 2, 3, 8, 6, 15]} -{"sent_id": [1, 3, 2, 4, 5, 0]} -{"sent_id": [2, 1, 3, 5, 7, 12]} -{"sent_id": [1, 2, 4, 3, 10, 12]} -{"sent_id": [1, 2, 11, 10, 0, 14]} -{"sent_id": [11, 3, 2, 1, 0, 16]} -{"sent_id": [1, 5, 4, 2, 10, 13]} -{"sent_id": [4, 1, 6, 2, 0, 15]} -{"sent_id": [1, 4, 5, 0, 3, 2]} -{"sent_id": [9, 2, 11, 3, 1, 10]} -{"sent_id": [4, 1, 2, 6, 8, 3]} -{"sent_id": [13, 7, 8, 12, 6, 4]} -{"sent_id": [4, 1, 2, 6, 0, 7]} -{"sent_id": [1, 2, 6, 5, 10, 11]} -{"sent_id": [1, 8, 4, 9, 0, 2]} -{"sent_id": [1, 6, 7, 0, 13, 4]} -{"sent_id": [10, 19, 4, 11, 3, 15]} -{"sent_id": [1, 4, 2, 8, 7, 5]} -{"sent_id": [3, 1, 10, 11, 4, 2]} -{"sent_id": [0, 1, 5, 3, 4, 14]} -{"sent_id": [14, 5, 15, 1, 2, 0]} -{"sent_id": [6, 11, 4, 0, 1, 2]} -{"sent_id": [1, 11, 22, 3, 0, 23]} -{"sent_id": [4, 16, 0, 3, 5, 1]} -{"sent_id": [4, 3, 5, 0, 13, 10]} -{"sent_id": [6, 1, 2, 7, 0, 13]} -{"sent_id": [5, 2, 7, 1, 10, 4]} -{"sent_id": [2, 1, 0, 8, 3, 9]} -{"sent_id": [4, 1, 12, 2, 0, 17]} -{"sent_id": [1, 15, 8, 13, 2, 17]} -{"sent_id": [2, 7, 1, 3, 4, 5]} -{"sent_id": [3, 4, 7, 1, 2, 13]} -{"sent_id": [0, 1, 6, 14, 4, 3]} -{"sent_id": [1, 5, 0, 9, 4, 6]} -{"sent_id": [1, 3, 2, 4, 0, 9]} -{"sent_id": [1, 2, 11, 0, 3, 6]} -{"sent_id": [1, 4, 3, 5, 16, 2]} -{"sent_id": [0, 4, 6, 11, 9, 7]} -{"sent_id": [4, 2, 3, 15, 1, 10]} -{"sent_id": [13, 2, 1, 11, 0, 9]} -{"sent_id": [3, 2, 7, 0, 1, 4]} -{"sent_id": [5, 1, 6, 3, 2, 7]} -{"sent_id": [3, 1, 0, 2, 7, 5]} -{"sent_id": [1, 3, 5, 7, 4, 12]} -{"sent_id": [8, 0, 2, 6, 9, 1]} -{"sent_id": [8, 20, 21, 10, 5, 7]} -{"sent_id": [4, 3, 1, 5, 8, 2]} -{"sent_id": [3, 4, 11, 5, 10, 6]} -{"sent_id": [2, 7, 3, 4, 5, 0]} -{"sent_id": [6, 7, 13, 2, 1, 8]} -{"sent_id": [2, 3, 7, 6, 5, 4]} -{"sent_id": [0, 1, 2, 4, 10, 3]} -{"sent_id": [1, 3, 11, 14, 2, 6]} -{"sent_id": [2, 1, 4, 5, 0, 10]} -{"sent_id": [1, 3, 4, 2, 9, 7]} -{"sent_id": [9, 2, 0, 4, 3, 1]} -{"sent_id": [3, 13, 6, 4, 5, 8]} -{"sent_id": [2, 1, 14, 4, 7, 0]} -{"sent_id": [1, 2, 4, 6, 11, 16]} -{"sent_id": [0, 13, 2, 1, 8, 9]} -{"sent_id": [2, 0, 3, 4, 5, 11]} -{"sent_id": [4, 2, 5, 3, 6, 10]} -{"sent_id": [0, 4, 1, 10, 3, 8]} -{"sent_id": [1, 10, 6, 11, 3, 5]} -{"sent_id": [1, 2, 5, 3, 0, 4]} -{"sent_id": [1, 2, 6, 3, 15, 0]} -{"sent_id": [1, 2, 0, 4, 3, 14]} -{"sent_id": [4, 5, 2, 1, 0, 11]} -{"sent_id": [1, 4, 2, 18, 0, 5]} -{"sent_id": [2, 6, 4, 7, 5, 14]} -{"sent_id": [2, 3, 9, 1, 12, 5]} -{"sent_id": [2, 1, 8, 0, 24, 3]} -{"sent_id": [10, 2, 0, 3, 1, 4]} -{"sent_id": [0, 3, 2, 8, 1, 16]} -{"sent_id": [1, 6, 5, 8, 7, 0]} -{"sent_id": [1, 2, 3, 5, 4, 0]} -{"sent_id": [3, 1, 4, 6, 9, 5]} -{"sent_id": [4, 5, 1, 3, 14, 2]} -{"sent_id": [4, 2, 1, 5, 15, 6]} -{"sent_id": [5, 1, 6, 2, 10, 0]} -{"sent_id": [10, 11, 18, 12, 8, 9]} -{"sent_id": [1, 3, 0, 2, 4, 6]} -{"sent_id": [3, 5, 10, 4, 2, 14]} -{"sent_id": [1, 3, 6, 7, 13, 5]} -{"sent_id": [0, 4, 2, 5, 3, 1]} -{"sent_id": [1, 2, 0, 6, 5, 12]} -{"sent_id": [0, 7, 2, 8, 1, 9]} -{"sent_id": [1, 2, 0, 3, 4, 15]} -{"sent_id": [0, 3, 4, 6, 12, 11]} -{"sent_id": [1, 2, 3, 13, 0, 9]} -{"sent_id": [1, 2, 4, 3, 7, 16]} -{"sent_id": [3, 5, 2, 4, 10, 1]} -{"sent_id": [1, 13, 8, 4, 2, 9]} -{"sent_id": [1, 2, 5, 0, 9, 6]} -{"sent_id": [3, 4, 5, 2, 14, 7]} -{"sent_id": [2, 4, 1, 3, 11, 7]} -{"sent_id": [0, 7, 2, 14, 5, 18]} -{"sent_id": [4, 8, 3, 2, 0, 1]} -{"sent_id": [0, 2, 10, 4, 15, 3]} -{"sent_id": [5, 2, 6, 8, 4, 1]} -{"sent_id": [1, 2, 3, 5, 4, 16]} -{"sent_id": [3, 1, 2, 4, 6, 0]} -{"sent_id": [4, 8, 11, 1, 6, 7]} -{"sent_id": [1, 14, 12, 2, 16, 13]} -{"sent_id": [3, 6, 11, 2, 0, 1]} -{"sent_id": [8, 1, 0, 9, 7, 4]} -{"sent_id": [2, 1, 9, 4, 8, 0]} -{"sent_id": [4, 1, 5, 10, 2, 3]} -{"sent_id": [3, 1, 12, 2, 0, 5]} -{"sent_id": [4, 9, 11, 5, 10, 3]} -{"sent_id": [3, 1, 2, 4, 6, 0]} -{"sent_id": [4, 0, 1, 20, 18, 6]} -{"sent_id": [3, 2, 6, 1, 11, 10]} -{"sent_id": [1, 4, 2, 3, 13, 0]} -{"sent_id": [10, 12, 3, 2, 0, 9]} -{"sent_id": [11, 5, 6, 14, 13, 2]} -{"sent_id": [2, 8, 0, 7, 3, 4]} -{"sent_id": [3, 15, 14, 2, 4, 8]} -{"sent_id": [5, 14, 4, 2, 10, 6]} -{"sent_id": [1, 2, 6, 5, 11, 14]} -{"sent_id": [2, 6, 0, 8, 1, 10]} -{"sent_id": [3, 1, 13, 17, 0, 15]} -{"sent_id": [5, 4, 9, 2, 3, 1]} -{"sent_id": [4, 1, 2, 3, 5, 0]} -{"sent_id": [0, 3, 11, 4, 1, 2]} -{"sent_id": [0, 2, 6, 4, 5, 3]} -{"sent_id": [2, 3, 1, 4, 5, 0]} -{"sent_id": [2, 8, 0, 5, 9, 6]} -{"sent_id": [1, 4, 11, 5, 0, 3]} -{"sent_id": [3, 8, 1, 0, 12, 2]} -{"sent_id": [2, 5, 4, 6, 8, 1]} -{"sent_id": [4, 6, 0, 3, 11, 7]} -{"sent_id": [4, 5, 10, 2, 1, 3]} -{"sent_id": [2, 12, 3, 0, 4, 8]} -{"sent_id": [3, 1, 2, 9, 5, 13]} -{"sent_id": [1, 4, 6, 5, 2, 0]} -{"sent_id": [0, 3, 13, 1, 7, 12]} -{"sent_id": [4, 1, 2, 3, 0, 10]} -{"sent_id": [1, 2, 3, 16, 0, 5]} -{"sent_id": [1, 12, 10, 3, 2, 5]} -{"sent_id": [9, 13, 6, 16, 5, 12]} -{"sent_id": [2, 7, 4, 3, 5, 12]} -{"sent_id": [1, 3, 5, 11, 4, 8]} -{"sent_id": [1, 0, 10, 12, 6, 3]} -{"sent_id": [1, 6, 10, 3, 14, 12]} -{"sent_id": [7, 2, 4, 5, 3, 11]} -{"sent_id": [0, 4, 2, 3, 13, 10]} -{"sent_id": [0, 4, 1, 3, 5, 16]} -{"sent_id": [2, 11, 1, 7, 12, 3]} -{"sent_id": [4, 3, 0, 11, 7, 9]} -{"sent_id": [2, 3, 1, 0, 6, 13]} -{"sent_id": [5, 2, 1, 3, 8, 4]} -{"sent_id": [4, 6, 5, 3, 0, 7]} -{"sent_id": [4, 9, 1, 5, 6, 3]} -{"sent_id": [5, 20, 21, 6, 8, 9]} -{"sent_id": [3, 4, 6, 0, 15, 5]} -{"sent_id": [0, 6, 13, 8, 1, 2]} -{"sent_id": [1, 2, 3, 4, 11, 12]} -{"sent_id": [0, 2, 9, 1, 4, 6]} -{"sent_id": [0, 6, 2, 12, 7, 1]} -{"sent_id": [1, 2, 3, 9, 4, 8]} -{"sent_id": [4, 8, 5, 2, 0, 7]} -{"sent_id": [0, 4, 9, 2, 10, 16]} -{"sent_id": [4, 5, 9, 6, 8, 11]} -{"sent_id": [1, 2, 9, 10, 4, 16]} -{"sent_id": [1, 2, 3, 0, 13, 4]} -{"sent_id": [3, 1, 2, 5, 10, 6]} -{"sent_id": [2, 5, 6, 4, 3, 9]} -{"sent_id": [1, 2, 3, 5, 9, 8]} -{"sent_id": [0, 2, 11, 3, 13, 1]} -{"sent_id": [3, 2, 6, 1, 0, 4]} -{"sent_id": [0, 2, 3, 18, 4, 10]} -{"sent_id": [4, 1, 3, 14, 8, 2]} -{"sent_id": [1, 3, 6, 4, 8, 5]} -{"sent_id": [0, 1, 3, 10, 4, 2]} -{"sent_id": [1, 14, 3, 0, 8, 7]} -{"sent_id": [0, 2, 1, 5, 9, 3]} -{"sent_id": [1, 5, 3, 4, 2, 7]} -{"sent_id": [3, 4, 2, 5, 0, 6]} -{"sent_id": [1, 7, 9, 8, 14, 2]} -{"sent_id": [3, 4, 10, 11, 7, 2]} -{"sent_id": [1, 3, 2, 13, 4, 0]} -{"sent_id": [3, 0, 2, 1, 19, 5]} -{"sent_id": [4, 7, 0, 1, 8, 2]} -{"sent_id": [1, 4, 5, 13, 0, 7]} -{"sent_id": [3, 2, 6, 0, 1, 5]} -{"sent_id": [0, 1, 5, 19, 4, 20]} -{"sent_id": [3, 1, 2, 6, 0, 5]} -{"sent_id": [1, 2, 4, 9, 0, 3]} -{"sent_id": [4, 2, 1, 0, 3, 18]} -{"sent_id": [1, 3, 2, 4, 5, 7]} -{"sent_id": [2, 3, 1, 0, 9, 8]} -{"sent_id": [2, 7, 9, 3, 4, 12]} -{"sent_id": [2, 1, 3, 18, 17, 4]} -{"sent_id": [0, 1, 6, 5, 10, 13]} -{"sent_id": [0, 1, 12, 4, 2, 19]} -{"sent_id": [4, 2, 3, 1, 5, 8]} -{"sent_id": [4, 5, 0, 1, 2, 14]} -{"sent_id": [3, 2, 7, 0, 6, 1]} -{"sent_id": [0, 2, 1, 17, 4, 13]} -{"sent_id": [2, 1, 4, 12, 7, 3]} -{"sent_id": [2, 0, 18, 3, 16, 17]} -{"sent_id": [1, 5, 7, 13, 14, 2]} -{"sent_id": [1, 3, 0, 5, 4, 6]} -{"sent_id": [1, 2, 0, 14, 8, 12]} -{"sent_id": [3, 2, 12, 8, 6, 4]} -{"sent_id": [4, 1, 6, 0, 2, 7]} -{"sent_id": [4, 3, 8, 1, 2, 0]} -{"sent_id": [1, 0, 2, 4, 5, 7]} -{"sent_id": [0, 15, 2, 1, 10, 6]} -{"sent_id": [4, 12, 1, 9, 14, 5]} -{"sent_id": [0, 4, 12, 1, 15, 11]} -{"sent_id": [5, 3, 1, 2, 11, 0]} -{"sent_id": [3, 4, 1, 12, 0, 6]} -{"sent_id": [5, 4, 7, 6, 13, 14]} -{"sent_id": [1, 0, 4, 2, 7, 5]} -{"sent_id": [2, 4, 1, 3, 13, 14]} -{"sent_id": [3, 9, 0, 6, 1, 2]} -{"sent_id": [0, 2, 1, 13, 15, 8]} -{"sent_id": [3, 1, 10, 2, 4, 14]} -{"sent_id": [1, 9, 11, 3, 7, 2]} -{"sent_id": [3, 1, 2, 4, 7, 13]} -{"sent_id": [3, 0, 4, 10, 1, 16]} -{"sent_id": [3, 2, 1, 0, 4, 5]} -{"sent_id": [2, 1, 4, 3, 6, 10]} -{"sent_id": [3, 4, 6, 5, 2, 0]} -{"sent_id": [5, 4, 2, 1, 6, 8]} -{"sent_id": [2, 0, 3, 4, 16, 1]} -{"sent_id": [1, 0, 2, 13, 7, 4]} -{"sent_id": [3, 1, 0, 2, 4, 5]} -{"sent_id": [2, 8, 0, 3, 7, 14]} -{"sent_id": [0, 1, 2, 17, 7, 13]} -{"sent_id": [3, 1, 6, 4, 0, 2]} -{"sent_id": [1, 0, 4, 6, 3, 11]} -{"sent_id": [1, 2, 15, 0, 5, 8]} -{"sent_id": [5, 7, 1, 6, 8, 9]} -{"sent_id": [1, 3, 10, 15, 2, 4]} -{"sent_id": [2, 3, 4, 1, 5, 0]} -{"sent_id": [6, 10, 3, 5, 4, 2]} -{"sent_id": [3, 1, 2, 18, 5, 4]} -{"sent_id": [1, 2, 5, 3, 15, 6]} -{"sent_id": [4, 9, 7, 0, 3, 5]} -{"sent_id": [1, 2, 5, 3, 4, 0]} -{"sent_id": [1, 3, 2, 6, 11, 5]} -{"sent_id": [0, 1, 14, 2, 6, 4]} -{"sent_id": [3, 10, 1, 4, 8, 0]} -{"sent_id": [5, 3, 1, 0, 2, 4]} -{"sent_id": [4, 0, 1, 3, 2, 10]} -{"sent_id": [4, 1, 5, 2, 3, 8]} -{"sent_id": [1, 0, 4, 10, 6, 2]} -{"sent_id": [8, 3, 9, 5, 7, 6]} -{"sent_id": [8, 4, 0, 2, 1, 5]} -{"sent_id": [1, 3, 7, 6, 9, 4]} -{"sent_id": [4, 0, 6, 11, 2, 7]} -{"sent_id": [0, 1, 10, 16, 11, 2]} -{"sent_id": [3, 15, 1, 4, 0, 2]} -{"sent_id": [0, 1, 5, 2, 9, 4]} -{"sent_id": [1, 3, 2, 4, 13, 5]} -{"sent_id": [3, 4, 2, 5, 1, 0]} -{"sent_id": [3, 1, 4, 0, 5, 2]} -{"sent_id": [4, 0, 3, 7, 5, 2]} -{"sent_id": [2, 4, 5, 3, 0, 8]} -{"sent_id": [12, 1, 8, 0, 4, 3]} -{"sent_id": [0, 4, 9, 5, 3, 1]} -{"sent_id": [2, 3, 1, 4, 0, 10]} -{"sent_id": [3, 2, 1, 5, 10, 4]} -{"sent_id": [1, 6, 13, 3, 0, 2]} -{"sent_id": [0, 1, 2, 3, 10, 16]} -{"sent_id": [1, 3, 0, 4, 2, 11]} -{"sent_id": [1, 2, 5, 3, 10, 0]} -{"sent_id": [10, 3, 1, 2, 4, 0]} -{"sent_id": [5, 0, 1, 2, 6, 12]} -{"sent_id": [4, 1, 2, 0, 3, 8]} -{"sent_id": [3, 10, 0, 2, 1, 8]} -{"sent_id": [0, 1, 6, 2, 5, 3]} -{"sent_id": [0, 4, 1, 2, 3, 12]} -{"sent_id": [13, 6, 8, 11, 15, 12]} -{"sent_id": [1, 0, 2, 8, 4, 3]} -{"sent_id": [5, 17, 15, 3, 0, 13]} -{"sent_id": [4, 3, 12, 5, 0, 2]} -{"sent_id": [3, 11, 5, 16, 4, 7]} -{"sent_id": [0, 4, 3, 6, 5, 2]} -{"sent_id": [1, 4, 5, 0, 2, 6]} -{"sent_id": [3, 15, 1, 4, 2, 14]} -{"sent_id": [1, 4, 10, 3, 0, 2]} -{"sent_id": [8, 4, 0, 1, 3, 5]} -{"sent_id": [2, 10, 0, 9, 11, 5]} -{"sent_id": [2, 0, 3, 5, 14, 12]} -{"sent_id": [0, 9, 2, 3, 8, 10]} -{"sent_id": [1, 3, 5, 14, 2, 17]} -{"sent_id": [1, 2, 0, 4, 3, 18]} -{"sent_id": [4, 1, 15, 14, 6, 13]} -{"sent_id": [1, 0, 3, 5, 2, 17]} -{"sent_id": [2, 7, 4, 3, 10, 5]} -{"sent_id": [3, 4, 2, 1, 6, 5]} -{"sent_id": [12, 13, 1, 4, 3, 0]} -{"sent_id": [10, 0, 4, 1, 2, 13]} -{"sent_id": [1, 2, 3, 4, 5, 11]} -{"sent_id": [1, 4, 2, 5, 0, 15]} -{"sent_id": [2, 10, 5, 4, 1, 9]} -{"sent_id": [2, 1, 8, 10, 6, 9]} -{"sent_id": [0, 3, 9, 2, 5, 12]} -{"sent_id": [1, 2, 10, 3, 12, 8]} -{"sent_id": [2, 1, 7, 6, 12, 0]} -{"sent_id": [1, 13, 2, 0, 4, 3]} -{"sent_id": [2, 4, 13, 0, 3, 1]} -{"sent_id": [8, 20, 1, 2, 5, 0]} -{"sent_id": [1, 4, 8, 15, 2, 5]} -{"sent_id": [8, 10, 9, 1, 11, 0]} -{"sent_id": [1, 2, 0, 5, 8, 6]} -{"sent_id": [2, 1, 5, 10, 4, 6]} -{"sent_id": [0, 1, 7, 16, 12, 9]} -{"sent_id": [3, 1, 2, 6, 8, 0]} -{"sent_id": [2, 1, 3, 0, 9, 5]} -{"sent_id": [0, 3, 2, 1, 5, 6]} -{"sent_id": [3, 2, 5, 4, 1, 0]} -{"sent_id": [0, 3, 4, 8, 6, 10]} -{"sent_id": [1, 4, 2, 3, 5, 8]} -{"sent_id": [1, 9, 4, 5, 0, 3]} -{"sent_id": [1, 3, 4, 0, 2, 14]} -{"sent_id": [3, 1, 7, 9, 8, 2]} -{"sent_id": [8, 4, 0, 2, 1, 5]} -{"sent_id": [3, 1, 17, 11, 0, 18]} -{"sent_id": [3, 2, 10, 5, 9, 14]} -{"sent_id": [0, 4, 16, 5, 3, 15]} -{"sent_id": [1, 0, 9, 2, 17, 6]} -{"sent_id": [4, 6, 3, 10, 13, 1]} -{"sent_id": [4, 5, 1, 6, 9, 0]} -{"sent_id": [1, 7, 2, 3, 8, 0]} -{"sent_id": [2, 1, 5, 4, 7, 6]} -{"sent_id": [3, 5, 4, 2, 1, 0]} -{"sent_id": [3, 0, 2, 5, 1, 4]} -{"sent_id": [3, 2, 0, 7, 6, 4]} -{"sent_id": [1, 10, 5, 2, 3, 0]} -{"sent_id": [1, 2, 9, 12, 0, 4]} -{"sent_id": [3, 4, 1, 2, 0, 16]} -{"sent_id": [3, 0, 2, 6, 13, 5]} -{"sent_id": [4, 1, 2, 6, 8, 3]} -{"sent_id": [1, 5, 2, 6, 3, 0]} -{"sent_id": [3, 2, 1, 6, 8, 4]} -{"sent_id": [3, 4, 5, 0, 2, 15]} -{"sent_id": [2, 1, 3, 5, 13, 8]} -{"sent_id": [0, 10, 8, 9, 17, 14]} -{"sent_id": [3, 1, 2, 9, 4, 15]} -{"sent_id": [2, 5, 1, 0, 10, 4]} -{"sent_id": [2, 0, 4, 3, 1, 6]} -{"sent_id": [3, 1, 2, 14, 15, 0]} -{"sent_id": [3, 1, 4, 8, 2, 10]} -{"sent_id": [4, 3, 5, 6, 2, 7]} -{"sent_id": [12, 3, 11, 4, 0, 10]} -{"sent_id": [0, 3, 6, 2, 1, 11]} -{"sent_id": [1, 2, 11, 5, 0, 9]} -{"sent_id": [2, 1, 11, 12, 7, 8]} -{"sent_id": [3, 5, 2, 4, 0, 6]} -{"sent_id": [1, 6, 5, 14, 13, 0]} -{"sent_id": [1, 3, 0, 5, 2, 13]} -{"sent_id": [1, 3, 0, 15, 2, 5]} -{"sent_id": [1, 0, 10, 7, 9, 11]} -{"sent_id": [1, 2, 6, 0, 5, 8]} -{"sent_id": [5, 2, 3, 4, 1, 12]} -{"sent_id": [1, 3, 2, 7, 8, 4]} -{"sent_id": [1, 2, 5, 6, 14, 3]} -{"sent_id": [4, 2, 5, 12, 19, 15]} -{"sent_id": [3, 4, 0, 5, 2, 6]} -{"sent_id": [0, 8, 2, 12, 4, 3]} -{"sent_id": [13, 2, 8, 4, 7, 1]} -{"sent_id": [2, 1, 0, 6, 7, 8]} -{"sent_id": [3, 1, 0, 2, 13, 4]} -{"sent_id": [5, 2, 12, 3, 4, 7]} -{"sent_id": [3, 1, 4, 13, 0, 14]} -{"sent_id": [1, 2, 4, 0, 8, 3]} -{"sent_id": [2, 1, 4, 3, 0, 7]} -{"sent_id": [1, 2, 4, 7, 0, 6]} -{"sent_id": [0, 2, 1, 3, 5, 11]} -{"sent_id": [3, 4, 7, 2, 6, 5]} -{"sent_id": [2, 1, 4, 0, 5, 3]} -{"sent_id": [3, 12, 0, 5, 11, 16]} -{"sent_id": [1, 2, 18, 14, 12, 0]} -{"sent_id": [2, 10, 0, 3, 4, 6]} -{"sent_id": [1, 15, 2, 8, 7, 9]} -{"sent_id": [4, 5, 1, 2, 3, 11]} -{"sent_id": [2, 1, 3, 0, 6, 5]} -{"sent_id": [2, 1, 8, 6, 9, 11]} -{"sent_id": [2, 3, 1, 8, 10, 7]} -{"sent_id": [1, 2, 10, 5, 0, 7]} -{"sent_id": [3, 12, 7, 10, 2, 11]} -{"sent_id": [5, 7, 1, 2, 3, 6]} -{"sent_id": [3, 4, 10, 1, 2, 8]} -{"sent_id": [3, 0, 2, 4, 10, 5]} -{"sent_id": [0, 1, 9, 3, 4, 2]} -{"sent_id": [1, 4, 2, 5, 3, 0]} -{"sent_id": [10, 3, 0, 4, 9, 1]} -{"sent_id": [2, 7, 5, 1, 3, 6]} -{"sent_id": [1, 4, 2, 7, 5, 6]} -{"sent_id": [3, 1, 2, 5, 9, 6]} -{"sent_id": [3, 2, 5, 1, 4, 0]} -{"sent_id": [3, 4, 11, 5, 1, 14]} -{"sent_id": [6, 14, 4, 1, 3, 5]} -{"sent_id": [0, 1, 5, 10, 2, 15]} -{"sent_id": [2, 4, 6, 7, 8, 5]} -{"sent_id": [2, 5, 3, 4, 16, 0]} -{"sent_id": [3, 10, 2, 8, 0, 1]} -{"sent_id": [0, 2, 1, 6, 3, 15]} -{"sent_id": [2, 3, 4, 1, 0, 10]} -{"sent_id": [1, 5, 2, 4, 0, 3]} -{"sent_id": [5, 6, 3, 2, 10, 0]} -{"sent_id": [2, 0, 3, 4, 8, 14]} -{"sent_id": [1, 0, 5, 3, 6, 4]} -{"sent_id": [1, 7, 0, 2, 8, 12]} -{"sent_id": [3, 1, 9, 0, 5, 8]} -{"sent_id": [3, 0, 2, 1, 8, 10]} -{"sent_id": [2, 3, 1, 4, 12, 16]} -{"sent_id": [3, 0, 5, 16, 1, 4]} -{"sent_id": [4, 11, 0, 17, 19, 1]} -{"sent_id": [9, 14, 4, 1, 3, 2]} -{"sent_id": [1, 2, 5, 15, 3, 11]} -{"sent_id": [4, 1, 6, 2, 12, 5]} -{"sent_id": [4, 8, 0, 1, 5, 7]} -{"sent_id": [2, 3, 0, 14, 12, 4]} -{"sent_id": [0, 4, 2, 6, 3, 7]} -{"sent_id": [2, 0, 1, 5, 3, 12]} -{"sent_id": [4, 11, 1, 3, 2, 13]} -{"sent_id": [3, 2, 8, 9, 5, 10]} -{"sent_id": [0, 10, 2, 8, 1, 5]} -{"sent_id": [1, 2, 7, 12, 3, 9]} -{"sent_id": [12, 2, 13, 9, 3, 6]} -{"sent_id": [1, 2, 13, 3, 5, 4]} -{"sent_id": [1, 5, 2, 3, 12, 4]} -{"sent_id": [4, 14, 1, 2, 0, 3]} -{"sent_id": [0, 5, 6, 1, 15, 4]} -{"sent_id": [1, 3, 2, 20, 19, 4]} -{"sent_id": [0, 2, 5, 6, 7, 1]} -{"sent_id": [9, 4, 6, 1, 12, 7]} -{"sent_id": [4, 6, 10, 5, 7, 2]} -{"sent_id": [9, 3, 4, 1, 2, 10]} -{"sent_id": [1, 2, 7, 16, 6, 11]} -{"sent_id": [3, 1, 2, 7, 12, 5]} -{"sent_id": [1, 3, 5, 4, 0, 2]} -{"sent_id": [2, 1, 3, 9, 6, 0]} -{"sent_id": [1, 0, 2, 3, 11, 9]} -{"sent_id": [2, 4, 1, 3, 9, 0]} -{"sent_id": [2, 4, 8, 5, 1, 7]} -{"sent_id": [1, 2, 4, 3, 5, 6]} -{"sent_id": [3, 4, 0, 5, 7, 8]} -{"sent_id": [1, 13, 3, 0, 8, 2]} -{"sent_id": [3, 2, 1, 9, 10, 0]} -{"sent_id": [2, 0, 6, 9, 3, 15]} -{"sent_id": [1, 0, 2, 5, 4, 11]} -{"sent_id": [1, 0, 2, 3, 4, 9]} -{"sent_id": [1, 0, 2, 6, 4, 5]} -{"sent_id": [2, 1, 3, 0, 5, 6]} -{"sent_id": [5, 6, 9, 13, 3, 10]} -{"sent_id": [2, 1, 5, 4, 3, 9]} -{"sent_id": [0, 8, 9, 4, 2, 3]} -{"sent_id": [3, 8, 4, 1, 5, 0]} -{"sent_id": [4, 1, 3, 0, 7, 9]} -{"sent_id": [5, 4, 10, 2, 1, 0]} -{"sent_id": [4, 0, 1, 2, 8, 7]} -{"sent_id": [0, 2, 9, 4, 3, 7]} -{"sent_id": [1, 2, 3, 5, 4, 0]} -{"sent_id": [11, 13, 5, 1, 4, 3]} -{"sent_id": [2, 3, 4, 1, 5, 7]} -{"sent_id": [2, 1, 0, 5, 11, 9]} -{"sent_id": [3, 14, 5, 0, 1, 4]} -{"sent_id": [1, 2, 4, 0, 13, 7]} -{"sent_id": [3, 2, 1, 7, 0, 11]} -{"sent_id": [2, 1, 4, 6, 0, 9]} -{"sent_id": [1, 3, 8, 7, 2, 5]} -{"sent_id": [19, 4, 0, 12, 1, 11]} -{"sent_id": [1, 7, 0, 6, 3, 2]} -{"sent_id": [3, 0, 4, 1, 2, 5]} -{"sent_id": [1, 0, 4, 2, 10, 7]} -{"sent_id": [3, 4, 1, 5, 22, 21]} -{"sent_id": [1, 5, 3, 8, 6, 2]} -{"sent_id": [4, 18, 3, 19, 7, 0]} -{"sent_id": [3, 12, 1, 0, 4, 2]} -{"sent_id": [4, 5, 0, 6, 2, 1]} -{"sent_id": [9, 3, 1, 2, 0, 5]} -{"sent_id": [3, 4, 1, 0, 15, 2]} -{"sent_id": [1, 3, 9, 8, 2, 11]} -{"sent_id": [7, 1, 3, 0, 2, 6]} -{"sent_id": [1, 5, 3, 4, 7, 8]} -{"sent_id": [5, 0, 4, 1, 10, 9]} -{"sent_id": [1, 2, 11, 3, 4, 8]} -{"sent_id": [4, 3, 0, 7, 2, 8]} -{"sent_id": [1, 2, 0, 3, 8, 12]} -{"sent_id": [2, 1, 0, 12, 3, 4]} -{"sent_id": [3, 0, 2, 4, 11, 7]} -{"sent_id": [1, 2, 5, 6, 0, 4]} -{"sent_id": [1, 3, 2, 0, 5, 6]} -{"sent_id": [1, 0, 4, 7, 2, 5]} -{"sent_id": [3, 1, 9, 2, 10, 0]} -{"sent_id": [3, 1, 2, 6, 8, 5]} -{"sent_id": [1, 2, 6, 3, 5, 9]} -{"sent_id": [0, 3, 1, 5, 17, 4]} -{"sent_id": [2, 3, 1, 9, 7, 12]} -{"sent_id": [1, 2, 3, 4, 6, 10]} -{"sent_id": [5, 11, 10, 3, 2, 8]} -{"sent_id": [3, 0, 2, 1, 4, 5]} -{"sent_id": [3, 4, 11, 0, 6, 1]} -{"sent_id": [2, 0, 1, 3, 4, 11]} -{"sent_id": [1, 11, 0, 3, 2, 6]} -{"sent_id": [3, 10, 2, 4, 11, 5]} -{"sent_id": [13, 3, 2, 8, 4, 14]} -{"sent_id": [1, 2, 0, 5, 6, 4]} -{"sent_id": [4, 2, 3, 1, 0, 11]} -{"sent_id": [3, 1, 14, 10, 0, 2]} -{"sent_id": [3, 4, 1, 5, 2, 11]} -{"sent_id": [7, 9, 0, 13, 4, 1]} -{"sent_id": [3, 1, 11, 4, 2, 12]} -{"sent_id": [3, 14, 11, 1, 5, 6]} -{"sent_id": [1, 3, 0, 2, 4, 5]} -{"sent_id": [3, 1, 4, 9, 2, 5]} -{"sent_id": [0, 1, 3, 8, 9, 6]} -{"sent_id": [1, 5, 8, 7, 6, 0]} -{"sent_id": [1, 5, 0, 16, 7, 8]} -{"sent_id": [1, 3, 14, 4, 2, 5]} -{"sent_id": [2, 4, 9, 1, 10, 0]} -{"sent_id": [1, 2, 5, 3, 12, 0]} -{"sent_id": [5, 6, 3, 7, 2, 1]} -{"sent_id": [6, 9, 0, 13, 7, 3]} -{"sent_id": [8, 0, 4, 2, 6, 12]} -{"sent_id": [0, 7, 1, 4, 5, 8]} -{"sent_id": [0, 2, 5, 6, 3, 7]} -{"sent_id": [0, 4, 1, 5, 2, 7]} -{"sent_id": [1, 2, 3, 4, 6, 0]} -{"sent_id": [6, 5, 7, 0, 1, 3]} -{"sent_id": [10, 11, 12, 1, 0, 4]} -{"sent_id": [1, 5, 4, 7, 6, 2]} -{"sent_id": [1, 5, 8, 2, 6, 0]} -{"sent_id": [1, 7, 5, 9, 2, 4]} -{"sent_id": [1, 2, 3, 11, 10, 9]} -{"sent_id": [2, 1, 4, 3, 0, 7]} -{"sent_id": [1, 3, 5, 6, 2, 0]} -{"sent_id": [4, 3, 5, 0, 1, 17]} -{"sent_id": [4, 0, 9, 1, 5, 2]} -{"sent_id": [2, 1, 3, 4, 8, 5]} -{"sent_id": [2, 3, 4, 1, 5, 6]} -{"sent_id": [1, 4, 3, 5, 6, 2]} -{"sent_id": [1, 0, 3, 6, 2, 4]} -{"sent_id": [3, 15, 1, 6, 4, 0]} -{"sent_id": [1, 0, 5, 2, 9, 3]} -{"sent_id": [1, 0, 2, 3, 9, 4]} -{"sent_id": [0, 9, 14, 8, 1, 2]} -{"sent_id": [10, 4, 13, 5, 3, 2]} -{"sent_id": [3, 11, 7, 0, 9, 10]} -{"sent_id": [2, 3, 11, 1, 7, 10]} -{"sent_id": [5, 1, 6, 0, 8, 11]} -{"sent_id": [7, 0, 12, 1, 2, 3]} -{"sent_id": [0, 1, 2, 9, 7, 3]} -{"sent_id": [8, 12, 6, 10, 9, 1]} -{"sent_id": [1, 5, 4, 2, 7, 3]} -{"sent_id": [8, 1, 2, 3, 7, 5]} -{"sent_id": [3, 0, 4, 2, 1, 5]} -{"sent_id": [3, 4, 14, 2, 1, 0]} -{"sent_id": [4, 2, 3, 7, 6, 11]} -{"sent_id": [1, 3, 2, 8, 13, 0]} -{"sent_id": [5, 3, 18, 4, 14, 19]} -{"sent_id": [2, 5, 3, 1, 4, 9]} -{"sent_id": [0, 3, 1, 2, 14, 5]} -{"sent_id": [14, 4, 6, 0, 2, 1]} -{"sent_id": [3, 5, 9, 0, 6, 11]} -{"sent_id": [1, 3, 2, 4, 5, 6]} -{"sent_id": [0, 5, 1, 9, 3, 2]} -{"sent_id": [1, 10, 2, 3, 5, 4]} -{"sent_id": [5, 0, 6, 4, 2, 7]} -{"sent_id": [2, 1, 3, 4, 5, 18]} -{"sent_id": [1, 4, 2, 3, 11, 13]} -{"sent_id": [1, 4, 0, 2, 10, 9]} -{"sent_id": [1, 0, 6, 5, 2, 9]} -{"sent_id": [3, 4, 8, 0, 1, 7]} -{"sent_id": [0, 3, 13, 5, 1, 2]} -{"sent_id": [2, 1, 7, 13, 4, 8]} -{"sent_id": [1, 3, 2, 0, 12, 10]} -{"sent_id": [3, 1, 4, 2, 8, 0]} -{"sent_id": [1, 2, 3, 5, 7, 0]} -{"sent_id": [3, 12, 4, 13, 14, 15]} -{"sent_id": [0, 13, 7, 5, 1, 3]} -{"sent_id": [3, 4, 8, 2, 0, 1]} -{"sent_id": [3, 1, 5, 4, 7, 10]} -{"sent_id": [3, 2, 1, 7, 0, 5]} -{"sent_id": [3, 9, 0, 8, 4, 5]} -{"sent_id": [0, 1, 2, 6, 12, 8]} -{"sent_id": [0, 1, 3, 11, 4, 5]} -{"sent_id": [1, 2, 7, 8, 10, 0]} -{"sent_id": [9, 0, 1, 3, 2, 12]} -{"sent_id": [2, 4, 13, 12, 9, 0]} -{"sent_id": [1, 6, 5, 2, 12, 7]} -{"sent_id": [7, 1, 3, 0, 5, 8]} -{"sent_id": [4, 3, 8, 2, 0, 9]} -{"sent_id": [0, 1, 2, 4, 5, 6]} -{"sent_id": [2, 5, 3, 13, 0, 4]} -{"sent_id": [0, 7, 3, 1, 2, 4]} -{"sent_id": [2, 3, 4, 0, 5, 1]} -{"sent_id": [2, 1, 0, 17, 9, 8]} -{"sent_id": [3, 2, 5, 0, 1, 6]} -{"sent_id": [3, 4, 0, 5, 13, 1]} -{"sent_id": [4, 5, 6, 17, 7, 0]} -{"sent_id": [1, 2, 3, 8, 4, 7]} -{"sent_id": [1, 3, 2, 9, 8, 0]} -{"sent_id": [0, 1, 3, 9, 2, 11]} -{"sent_id": [3, 1, 2, 10, 11, 5]} -{"sent_id": [1, 2, 3, 5, 11, 0]} -{"sent_id": [3, 2, 8, 4, 5, 1]} -{"sent_id": [1, 9, 5, 3, 2, 4]} -{"sent_id": [1, 2, 3, 8, 9, 6]} -{"sent_id": [6, 9, 2, 5, 7, 3]} -{"sent_id": [3, 10, 2, 6, 9, 0]} -{"sent_id": [2, 1, 3, 4, 7, 8]} -{"sent_id": [0, 4, 12, 1, 10, 5]} -{"sent_id": [1, 8, 2, 13, 3, 9]} -{"sent_id": [3, 1, 12, 13, 4, 2]} -{"sent_id": [0, 4, 1, 5, 14, 2]} -{"sent_id": [2, 0, 3, 1, 12, 5]} -{"sent_id": [1, 3, 0, 12, 2, 9]} -{"sent_id": [3, 2, 5, 1, 0, 8]} -{"sent_id": [1, 3, 2, 0, 4, 18]} -{"sent_id": [4, 6, 10, 8, 3, 14]} -{"sent_id": [2, 0, 3, 4, 1, 9]} -{"sent_id": [2, 1, 3, 5, 14, 7]} -{"sent_id": [2, 0, 1, 4, 5, 3]} -{"sent_id": [3, 1, 2, 10, 0, 8]} -{"sent_id": [4, 3, 2, 1, 11, 7]} -{"sent_id": [3, 4, 13, 0, 1, 6]} -{"sent_id": [4, 1, 3, 15, 17, 13]} -{"sent_id": [1, 13, 12, 6, 4, 5]} -{"sent_id": [4, 6, 8, 3, 5, 9]} -{"sent_id": [2, 1, 4, 11, 3, 5]} -{"sent_id": [12, 6, 13, 4, 8, 3]} -{"sent_id": [2, 0, 16, 1, 7, 11]} -{"sent_id": [4, 8, 3, 13, 18, 9]} -{"sent_id": [3, 10, 2, 0, 4, 1]} -{"sent_id": [3, 1, 0, 8, 4, 2]} -{"sent_id": [1, 5, 4, 10, 2, 3]} -{"sent_id": [1, 4, 0, 11, 2, 14]} -{"sent_id": [3, 4, 1, 13, 0, 9]} -{"sent_id": [3, 1, 4, 0, 8, 2]} -{"sent_id": [5, 1, 13, 6, 7, 3]} -{"sent_id": [4, 0, 5, 3, 1, 2]} -{"sent_id": [0, 18, 13, 3, 1, 19]} -{"sent_id": [0, 1, 3, 2, 10, 13]} -{"sent_id": [10, 3, 1, 5, 2, 4]} -{"sent_id": [3, 2, 1, 0, 5, 17]} -{"sent_id": [3, 0, 10, 2, 11, 1]} -{"sent_id": [3, 8, 2, 16, 9, 0]} -{"sent_id": [1, 6, 8, 2, 0, 9]} -{"sent_id": [1, 2, 3, 4, 7, 8]} -{"sent_id": [1, 4, 6, 5, 2, 3]} -{"sent_id": [2, 0, 1, 6, 3, 5]} -{"sent_id": [2, 0, 7, 4, 12, 1]} -{"sent_id": [0, 1, 2, 14, 12, 3]} -{"sent_id": [1, 2, 4, 5, 13, 6]} -{"sent_id": [5, 1, 0, 7, 9, 2]} -{"sent_id": [1, 12, 9, 2, 0, 5]} -{"sent_id": [2, 1, 10, 0, 3, 4]} -{"sent_id": [1, 5, 6, 4, 3, 9]} -{"sent_id": [1, 3, 6, 4, 7, 9]} -{"sent_id": [2, 3, 0, 1, 4, 7]} -{"sent_id": [0, 1, 6, 2, 3, 9]} -{"sent_id": [2, 5, 13, 0, 6, 10]} -{"sent_id": [6, 1, 2, 3, 4, 9]} -{"sent_id": [2, 3, 5, 6, 0, 1]} -{"sent_id": [3, 1, 9, 2, 13, 8]} -{"sent_id": [3, 9, 0, 15, 1, 2]} -{"sent_id": [2, 10, 11, 6, 0, 13]} -{"sent_id": [0, 4, 5, 1, 16, 13]} -{"sent_id": [0, 10, 4, 5, 2, 1]} -{"sent_id": [2, 1, 5, 4, 3, 0]} -{"sent_id": [2, 9, 4, 7, 1, 10]} -{"sent_id": [5, 1, 2, 3, 9, 0]} -{"sent_id": [1, 2, 7, 4, 6, 0]} -{"sent_id": [1, 2, 0, 6, 5, 4]} -{"sent_id": [5, 1, 4, 2, 0, 7]} -{"sent_id": [1, 2, 6, 8, 9, 0]} -{"sent_id": [1, 3, 2, 17, 0, 11]} -{"sent_id": [2, 8, 3, 6, 1, 4]} -{"sent_id": [4, 0, 1, 2, 5, 8]} -{"sent_id": [7, 2, 3, 6, 0, 12]} -{"sent_id": [1, 0, 2, 8, 5, 3]} -{"sent_id": [0, 4, 3, 19, 5, 6]} -{"sent_id": [1, 0, 3, 4, 13, 11]} -{"sent_id": [4, 10, 3, 2, 5, 6]} -{"sent_id": [4, 1, 11, 3, 5, 2]} -{"sent_id": [1, 12, 11, 2, 0, 3]} -{"sent_id": [2, 3, 4, 0, 8, 11]} -{"sent_id": [1, 2, 3, 4, 5, 6]} -{"sent_id": [1, 2, 4, 8, 0, 7]} -{"sent_id": [4, 2, 1, 3, 8, 5]} -{"sent_id": [3, 2, 4, 9, 1, 10]} -{"sent_id": [2, 4, 3, 5, 10, 9]} -{"sent_id": [0, 10, 4, 3, 2, 1]} -{"sent_id": [3, 0, 5, 1, 4, 9]} -{"sent_id": [0, 3, 1, 4, 2, 8]} -{"sent_id": [3, 0, 4, 1, 17, 5]} -{"sent_id": [1, 2, 6, 3, 4, 5]} -{"sent_id": [1, 3, 4, 14, 2, 16]} -{"sent_id": [4, 1, 2, 13, 3, 0]} -{"sent_id": [0, 3, 4, 17, 18, 5]} -{"sent_id": [0, 4, 2, 1, 5, 8]} -{"sent_id": [0, 2, 1, 4, 3, 5]} -{"sent_id": [1, 3, 4, 5, 2, 0]} -{"sent_id": [9, 2, 4, 1, 0, 12]} -{"sent_id": [1, 3, 0, 12, 4, 2]} -{"sent_id": [2, 3, 4, 0, 5, 16]} -{"sent_id": [2, 3, 0, 12, 1, 11]} -{"sent_id": [1, 0, 3, 21, 7, 2]} -{"sent_id": [1, 2, 4, 5, 16, 9]} -{"sent_id": [0, 4, 8, 3, 1, 10]} -{"sent_id": [1, 3, 2, 0, 10, 5]} -{"sent_id": [1, 5, 4, 3, 2, 0]} -{"sent_id": [2, 6, 5, 9, 3, 4]} -{"sent_id": [1, 4, 10, 0, 5, 2]} -{"sent_id": [0, 2, 1, 3, 11, 4]} -{"sent_id": [3, 0, 12, 10, 2, 5]} -{"sent_id": [3, 11, 2, 8, 12, 10]} -{"sent_id": [2, 1, 3, 0, 4, 5]} -{"sent_id": [2, 3, 0, 4, 1, 8]} -{"sent_id": [2, 9, 4, 3, 10, 1]} -{"sent_id": [1, 3, 16, 4, 8, 6]} -{"sent_id": [1, 2, 4, 6, 8, 5]} -{"sent_id": [0, 2, 1, 7, 5, 6]} -{"sent_id": [0, 1, 6, 11, 13, 2]} -{"sent_id": [1, 2, 4, 15, 3, 12]} -{"sent_id": [2, 1, 0, 9, 4, 13]} -{"sent_id": [1, 2, 3, 7, 0, 9]} -{"sent_id": [1, 0, 2, 3, 6, 4]} -{"sent_id": [3, 1, 9, 8, 2, 6]} -{"sent_id": [2, 1, 6, 0, 4, 8]} -{"sent_id": [3, 2, 1, 6, 7, 10]} -{"sent_id": [1, 0, 2, 6, 8, 7]} -{"sent_id": [3, 2, 0, 1, 13, 14]} -{"sent_id": [2, 3, 0, 12, 10, 6]} -{"sent_id": [12, 1, 0, 10, 16, 11]} -{"sent_id": [1, 4, 8, 9, 7, 0]} -{"sent_id": [3, 5, 4, 2, 11, 6]} -{"sent_id": [9, 2, 0, 4, 1, 10]} -{"sent_id": [3, 4, 16, 6, 10, 5]} -{"sent_id": [3, 0, 1, 7, 5, 4]} -{"sent_id": [7, 0, 3, 8, 4, 1]} -{"sent_id": [1, 10, 11, 4, 3, 0]} -{"sent_id": [1, 3, 2, 4, 5, 11]} -{"sent_id": [2, 1, 0, 11, 3, 9]} -{"sent_id": [1, 2, 4, 3, 0, 9]} -{"sent_id": [1, 2, 0, 5, 8, 10]} -{"sent_id": [1, 3, 5, 6, 2, 7]} -{"sent_id": [14, 1, 13, 11, 3, 12]} -{"sent_id": [3, 1, 0, 2, 11, 8]} -{"sent_id": [1, 3, 12, 0, 11, 5]} -{"sent_id": [0, 1, 10, 8, 9, 2]} -{"sent_id": [0, 1, 3, 8, 2, 12]} -{"sent_id": [3, 2, 1, 10, 4, 0]} -{"sent_id": [1, 3, 8, 0, 2, 16]} -{"sent_id": [1, 4, 8, 2, 10, 0]} -{"sent_id": [3, 1, 2, 4, 6, 9]} -{"sent_id": [1, 3, 4, 0, 10, 2]} -{"sent_id": [1, 3, 4, 2, 14, 7]} -{"sent_id": [3, 11, 0, 4, 1, 6]} -{"sent_id": [0, 5, 1, 9, 2, 4]} -{"sent_id": [4, 0, 1, 11, 2, 6]} -{"sent_id": [4, 8, 5, 1, 7, 6]} -{"sent_id": [0, 11, 10, 2, 3, 7]} -{"sent_id": [3, 1, 6, 9, 10, 12]} -{"sent_id": [1, 2, 4, 8, 5, 11]} -{"sent_id": [1, 3, 2, 0, 12, 9]} -{"sent_id": [1, 2, 11, 5, 0, 12]} -{"sent_id": [1, 2, 5, 0, 6, 4]} -{"sent_id": [3, 10, 12, 4, 1, 2]} -{"sent_id": [2, 1, 6, 4, 0, 5]} -{"sent_id": [1, 3, 2, 11, 4, 0]} -{"sent_id": [1, 2, 3, 11, 10, 8]} -{"sent_id": [0, 2, 6, 3, 12, 7]} -{"sent_id": [3, 4, 1, 0, 2, 12]} -{"sent_id": [3, 2, 12, 5, 4, 0]} -{"sent_id": [1, 2, 8, 7, 19, 4]} -{"sent_id": [4, 2, 7, 8, 15, 10]} -{"sent_id": [0, 3, 5, 4, 9, 6]} -{"sent_id": [1, 0, 5, 9, 7, 4]} -{"sent_id": [0, 3, 2, 5, 1, 12]} -{"sent_id": [1, 3, 11, 2, 5, 0]} -{"sent_id": [1, 2, 6, 4, 0, 10]} -{"sent_id": [3, 0, 11, 4, 1, 2]} -{"sent_id": [3, 2, 4, 18, 7, 15]} -{"sent_id": [1, 2, 5, 8, 9, 4]} -{"sent_id": [1, 3, 4, 2, 7, 5]} -{"sent_id": [1, 2, 3, 0, 5, 4]} -{"sent_id": [1, 5, 2, 0, 11, 6]} -{"sent_id": [3, 4, 2, 1, 7, 6]} -{"sent_id": [2, 5, 1, 4, 6, 8]} -{"sent_id": [1, 2, 5, 3, 7, 4]} -{"sent_id": [0, 1, 7, 6, 5, 3]} -{"sent_id": [1, 2, 5, 3, 0, 15]} -{"sent_id": [1, 12, 2, 10, 13, 15]} -{"sent_id": [3, 2, 4, 1, 7, 8]} -{"sent_id": [4, 1, 0, 5, 6, 7]} -{"sent_id": [1, 3, 4, 2, 12, 11]} -{"sent_id": [0, 2, 1, 4, 7, 6]} -{"sent_id": [4, 8, 1, 7, 3, 14]} -{"sent_id": [7, 3, 11, 8, 2, 1]} -{"sent_id": [1, 3, 12, 4, 2, 0]} -{"sent_id": [0, 5, 1, 10, 2, 4]} -{"sent_id": [0, 3, 1, 18, 2, 4]} -{"sent_id": [2, 1, 7, 3, 6, 4]} -{"sent_id": [8, 14, 0, 7, 3, 15]} -{"sent_id": [1, 3, 9, 10, 5, 2]} -{"sent_id": [2, 1, 3, 4, 5, 6]} -{"sent_id": [3, 10, 1, 15, 0, 9]} -{"sent_id": [3, 2, 8, 7, 9, 5]} -{"sent_id": [1, 4, 11, 0, 2, 12]} -{"sent_id": [1, 2, 3, 0, 4, 5]} -{"sent_id": [4, 3, 5, 8, 11, 2]} -{"sent_id": [2, 3, 6, 1, 5, 4]} -{"sent_id": [3, 2, 1, 4, 8, 9]} -{"sent_id": [1, 2, 5, 4, 12, 3]} -{"sent_id": [2, 1, 3, 6, 7, 5]} -{"sent_id": [5, 13, 4, 2, 3, 14]} -{"sent_id": [10, 2, 11, 1, 4, 3]} -{"sent_id": [4, 10, 0, 11, 2, 1]} -{"sent_id": [2, 6, 4, 1, 0, 11]} -{"sent_id": [3, 2, 7, 8, 17, 9]} -{"sent_id": [4, 16, 3, 2, 1, 5]} -{"sent_id": [1, 7, 4, 5, 2, 11]} -{"sent_id": [0, 2, 1, 7, 5, 8]} -{"sent_id": [1, 0, 5, 14, 3, 20]} -{"sent_id": [10, 5, 2, 1, 7, 6]} -{"sent_id": [1, 2, 3, 8, 4, 10]} -{"sent_id": [1, 2, 6, 7, 3, 8]} -{"sent_id": [2, 8, 6, 3, 7, 10]} -{"sent_id": [1, 2, 3, 7, 4, 6]} -{"sent_id": [12, 3, 1, 9, 2, 4]} -{"sent_id": [9, 15, 17, 12, 5, 7]} -{"sent_id": [1, 2, 0, 6, 5, 3]} -{"sent_id": [2, 0, 14, 5, 3, 1]} -{"sent_id": [4, 6, 16, 5, 13, 17]} -{"sent_id": [1, 2, 15, 6, 5, 16]} -{"sent_id": [2, 7, 1, 13, 10, 9]} -{"sent_id": [9, 2, 10, 3, 0, 4]} -{"sent_id": [0, 3, 1, 11, 2, 13]} -{"sent_id": [5, 0, 14, 3, 8, 15]} -{"sent_id": [1, 0, 5, 9, 2, 4]} -{"sent_id": [1, 2, 5, 6, 4, 0]} -{"sent_id": [0, 8, 3, 2, 9, 7]} -{"sent_id": [1, 3, 7, 4, 11, 9]} -{"sent_id": [1, 2, 0, 5, 8, 6]} -{"sent_id": [3, 4, 19, 18, 0, 2]} -{"sent_id": [1, 3, 10, 4, 5, 14]} -{"sent_id": [1, 5, 2, 4, 6, 10]} -{"sent_id": [5, 7, 10, 3, 4, 1]} -{"sent_id": [4, 1, 2, 0, 7, 5]} -{"sent_id": [2, 1, 11, 12, 15, 14]} -{"sent_id": [5, 4, 10, 9, 17, 6]} -{"sent_id": [4, 16, 0, 6, 2, 1]} -{"sent_id": [1, 4, 5, 7, 6, 12]} -{"sent_id": [2, 3, 0, 10, 4, 1]} -{"sent_id": [1, 3, 2, 6, 0, 4]} -{"sent_id": [2, 1, 8, 3, 4, 0]} -{"sent_id": [3, 4, 1, 2, 12, 6]} -{"sent_id": [1, 2, 6, 14, 3, 7]} -{"sent_id": [3, 10, 9, 1, 4, 2]} -{"sent_id": [4, 0, 2, 1, 3, 5]} -{"sent_id": [4, 2, 1, 3, 6, 5]} -{"sent_id": [1, 3, 0, 2, 4, 13]} -{"sent_id": [3, 2, 1, 6, 4, 0]} -{"sent_id": [0, 1, 2, 9, 3, 7]} -{"sent_id": [3, 4, 1, 15, 9, 5]} -{"sent_id": [4, 0, 1, 2, 9, 3]} -{"sent_id": [11, 0, 3, 1, 2, 13]} -{"sent_id": [2, 1, 0, 5, 13, 14]} -{"sent_id": [1, 0, 2, 4, 6, 3]} -{"sent_id": [1, 7, 0, 2, 3, 8]} -{"sent_id": [0, 3, 4, 13, 1, 10]} -{"sent_id": [4, 14, 3, 15, 2, 5]} -{"sent_id": [0, 1, 11, 2, 3, 5]} -{"sent_id": [5, 6, 2, 4, 3, 1]} -{"sent_id": [0, 2, 3, 12, 4, 1]} -{"sent_id": [2, 4, 1, 3, 5, 10]} -{"sent_id": [2, 1, 8, 9, 4, 5]} -{"sent_id": [1, 8, 2, 3, 5, 4]} -{"sent_id": [0, 3, 1, 4, 2, 9]} -{"sent_id": [2, 1, 3, 14, 10, 7]} -{"sent_id": [3, 0, 10, 4, 1, 9]} -{"sent_id": [4, 1, 5, 3, 2, 12]} -{"sent_id": [1, 3, 2, 6, 0, 10]} -{"sent_id": [3, 13, 0, 2, 1, 5]} -{"sent_id": [2, 1, 9, 5, 11, 0]} -{"sent_id": [3, 14, 5, 2, 4, 0]} -{"sent_id": [4, 9, 8, 0, 15, 1]} -{"sent_id": [1, 5, 9, 6, 2, 12]} -{"sent_id": [3, 0, 4, 5, 7, 6]} -{"sent_id": [0, 3, 2, 4, 1, 5]} -{"sent_id": [5, 11, 12, 13, 4, 1]} -{"sent_id": [1, 2, 9, 0, 11, 6]} -{"sent_id": [3, 2, 1, 5, 4, 6]} -{"sent_id": [2, 7, 3, 1, 8, 0]} -{"sent_id": [1, 2, 0, 6, 9, 5]} -{"sent_id": [5, 1, 6, 2, 7, 3]} -{"sent_id": [1, 2, 0, 4, 8, 3]} -{"sent_id": [3, 2, 4, 5, 8, 1]} -{"sent_id": [3, 5, 4, 0, 2, 9]} -{"sent_id": [1, 2, 6, 4, 3, 7]} -{"sent_id": [1, 2, 5, 3, 6, 8]} -{"sent_id": [2, 1, 6, 3, 5, 0]} -{"sent_id": [10, 5, 6, 1, 2, 3]} -{"sent_id": [1, 2, 9, 0, 12, 15]} -{"sent_id": [1, 2, 0, 3, 6, 5]} -{"sent_id": [4, 2, 3, 6, 5, 10]} -{"sent_id": [3, 12, 4, 17, 0, 5]} -{"sent_id": [4, 1, 2, 5, 6, 3]} -{"sent_id": [1, 2, 0, 15, 9, 8]} -{"sent_id": [2, 1, 7, 16, 3, 0]} -{"sent_id": [1, 8, 5, 4, 2, 0]} -{"sent_id": [0, 4, 8, 3, 5, 2]} -{"sent_id": [0, 1, 4, 3, 8, 2]} -{"sent_id": [3, 4, 17, 5, 0, 1]} -{"sent_id": [1, 2, 4, 5, 6, 10]} -{"sent_id": [0, 8, 6, 1, 3, 2]} -{"sent_id": [1, 2, 3, 10, 11, 5]} -{"sent_id": [7, 6, 9, 13, 19, 8]} -{"sent_id": [5, 3, 2, 4, 7, 8]} -{"sent_id": [1, 2, 8, 0, 9, 13]} -{"sent_id": [3, 12, 0, 4, 1, 2]} -{"sent_id": [3, 1, 8, 2, 9, 5]} -{"sent_id": [11, 12, 7, 1, 6, 18]} -{"sent_id": [0, 1, 8, 7, 2, 9]} -{"sent_id": [0, 1, 5, 4, 16, 6]} -{"sent_id": [1, 6, 4, 3, 10, 5]} -{"sent_id": [9, 2, 10, 11, 1, 4]} -{"sent_id": [3, 1, 2, 0, 6, 8]} -{"sent_id": [0, 19, 5, 2, 20, 1]} -{"sent_id": [3, 11, 0, 6, 5, 1]} -{"sent_id": [1, 2, 4, 3, 20, 5]} -{"sent_id": [4, 3, 20, 1, 9, 2]} -{"sent_id": [1, 2, 4, 9, 10, 11]} -{"sent_id": [10, 11, 12, 13, 0, 1]} -{"sent_id": [0, 1, 3, 4, 16, 2]} -{"sent_id": [2, 4, 3, 1, 0, 7]} -{"sent_id": [3, 0, 1, 18, 12, 7]} -{"sent_id": [4, 1, 2, 13, 3, 0]} -{"sent_id": [2, 1, 10, 12, 11, 3]} -{"sent_id": [1, 4, 2, 3, 5, 0]} -{"sent_id": [0, 1, 16, 3, 4, 17]} -{"sent_id": [3, 9, 0, 2, 1, 4]} -{"sent_id": [1, 4, 2, 0, 6, 13]} -{"sent_id": [1, 2, 3, 12, 6, 5]} -{"sent_id": [8, 9, 6, 10, 2, 0]} -{"sent_id": [1, 3, 2, 4, 6, 5]} -{"sent_id": [4, 1, 5, 3, 6, 2]} -{"sent_id": [3, 0, 4, 1, 5, 9]} -{"sent_id": [2, 4, 7, 0, 3, 1]} -{"sent_id": [2, 9, 16, 1, 17, 0]} -{"sent_id": [3, 10, 1, 2, 11, 9]} -{"sent_id": [2, 3, 1, 8, 9, 4]} -{"sent_id": [0, 1, 2, 6, 8, 14]} -{"sent_id": [3, 11, 2, 1, 5, 6]} -{"sent_id": [3, 1, 6, 8, 16, 5]} -{"sent_id": [1, 2, 0, 8, 3, 11]} -{"sent_id": [3, 14, 1, 0, 11, 2]} -{"sent_id": [3, 1, 2, 0, 9, 7]} -{"sent_id": [2, 1, 0, 7, 5, 6]} -{"sent_id": [1, 6, 4, 5, 2, 14]} -{"sent_id": [8, 1, 3, 6, 2, 10]} -{"sent_id": [6, 1, 11, 7, 5, 18]} -{"sent_id": [1, 2, 10, 3, 9, 0]} -{"sent_id": [4, 5, 1, 3, 0, 6]} -{"sent_id": [1, 5, 7, 21, 4, 12]} -{"sent_id": [2, 3, 10, 7, 12, 11]} -{"sent_id": [2, 3, 9, 4, 6, 1]} -{"sent_id": [4, 1, 6, 0, 7, 3]} -{"sent_id": [3, 1, 0, 4, 2, 6]} -{"sent_id": [0, 1, 4, 10, 2, 11]} -{"sent_id": [8, 4, 19, 9, 14, 0]} -{"sent_id": [1, 9, 0, 3, 10, 4]} -{"sent_id": [0, 2, 4, 1, 3, 12]} -{"sent_id": [2, 1, 3, 4, 15, 7]} -{"sent_id": [3, 2, 1, 6, 13, 5]} -{"sent_id": [3, 4, 8, 11, 2, 1]} -{"sent_id": [5, 1, 2, 4, 7, 6]} -{"sent_id": [0, 4, 2, 10, 1, 5]} -{"sent_id": [2, 3, 0, 6, 1, 7]} -{"sent_id": [4, 1, 2, 6, 0, 3]} -{"sent_id": [1, 8, 3, 5, 2, 4]} -{"sent_id": [0, 12, 3, 4, 7, 11]} -{"sent_id": [5, 1, 8, 0, 2, 3]} -{"sent_id": [1, 2, 3, 0, 8, 7]} -{"sent_id": [0, 3, 1, 14, 6, 2]} -{"sent_id": [2, 1, 4, 0, 7, 5]} -{"sent_id": [5, 1, 6, 2, 7, 10]} -{"sent_id": [4, 1, 8, 2, 3, 7]} -{"sent_id": [2, 3, 1, 8, 7, 0]} -{"sent_id": [3, 2, 9, 4, 6, 5]} -{"sent_id": [3, 2, 6, 1, 4, 11]} -{"sent_id": [5, 1, 0, 7, 2, 9]} -{"sent_id": [1, 6, 7, 0, 2, 5]} -{"sent_id": [3, 4, 2, 1, 10, 0]} -{"sent_id": [1, 7, 2, 11, 13, 3]} -{"sent_id": [2, 3, 5, 1, 9, 4]} -{"sent_id": [10, 0, 13, 6, 11, 12]} -{"sent_id": [3, 14, 5, 7, 10, 11]} -{"sent_id": [3, 0, 4, 15, 9, 2]} -{"sent_id": [1, 2, 3, 0, 4, 8]} -{"sent_id": [3, 8, 1, 2, 9, 0]} -{"sent_id": [0, 9, 2, 12, 3, 8]} -{"sent_id": [1, 7, 0, 12, 14, 16]} -{"sent_id": [4, 1, 2, 10, 3, 0]} -{"sent_id": [3, 0, 2, 5, 11, 4]} -{"sent_id": [1, 3, 2, 7, 0, 11]} -{"sent_id": [3, 2, 8, 7, 4, 5]} -{"sent_id": [1, 2, 4, 6, 7, 5]} -{"sent_id": [4, 2, 5, 3, 0, 6]} -{"sent_id": [0, 1, 3, 9, 8, 7]} -{"sent_id": [0, 3, 11, 1, 4, 6]} -{"sent_id": [2, 7, 12, 4, 1, 9]} -{"sent_id": [0, 3, 1, 6, 4, 11]} -{"sent_id": [2, 0, 3, 6, 11, 1]} -{"sent_id": [1, 2, 7, 9, 0, 13]} -{"sent_id": [3, 0, 5, 18, 2, 9]} -{"sent_id": [0, 10, 1, 11, 12, 3]} -{"sent_id": [0, 1, 8, 4, 5, 2]} -{"sent_id": [2, 3, 1, 4, 5, 7]} -{"sent_id": [1, 2, 9, 10, 4, 8]} -{"sent_id": [0, 2, 1, 4, 8, 3]} -{"sent_id": [0, 3, 2, 1, 4, 10]} -{"sent_id": [1, 2, 5, 6, 7, 0]} -{"sent_id": [6, 2, 0, 4, 5, 14]} -{"sent_id": [2, 6, 0, 3, 4, 11]} -{"sent_id": [1, 2, 0, 3, 5, 4]} -{"sent_id": [13, 3, 14, 0, 1, 4]} -{"sent_id": [4, 1, 3, 6, 12, 11]} -{"sent_id": [5, 2, 4, 13, 12, 6]} -{"sent_id": [1, 3, 2, 4, 5, 12]} -{"sent_id": [5, 1, 2, 7, 6, 3]} -{"sent_id": [0, 4, 9, 3, 1, 2]} -{"sent_id": [3, 4, 2, 0, 5, 1]} -{"sent_id": [1, 2, 6, 0, 4, 3]} -{"sent_id": [0, 6, 2, 1, 5, 8]} -{"sent_id": [1, 2, 5, 0, 6, 4]} -{"sent_id": [3, 4, 0, 5, 16, 1]} -{"sent_id": [1, 6, 3, 4, 11, 5]} -{"sent_id": [5, 4, 10, 3, 2, 1]} -{"sent_id": [1, 12, 16, 4, 2, 14]} -{"sent_id": [2, 1, 3, 6, 5, 4]} -{"sent_id": [1, 0, 5, 2, 11, 6]} -{"sent_id": [2, 18, 0, 1, 10, 21]} -{"sent_id": [6, 7, 0, 5, 8, 2]} -{"sent_id": [0, 3, 1, 2, 5, 4]} -{"sent_id": [2, 5, 0, 7, 1, 4]} -{"sent_id": [2, 4, 16, 3, 10, 1]} -{"sent_id": [1, 3, 4, 10, 2, 5]} -{"sent_id": [2, 3, 4, 7, 1, 6]} -{"sent_id": [1, 2, 4, 7, 6, 3]} -{"sent_id": [3, 1, 6, 0, 5, 15]} -{"sent_id": [1, 2, 4, 3, 6, 19]} -{"sent_id": [0, 1, 7, 3, 5, 2]} -{"sent_id": [2, 3, 15, 7, 11, 1]} -{"sent_id": [2, 6, 1, 11, 7, 3]} -{"sent_id": [4, 1, 3, 2, 8, 0]} -{"sent_id": [5, 6, 1, 7, 2, 3]} -{"sent_id": [5, 3, 4, 1, 2, 18]} -{"sent_id": [1, 4, 2, 9, 11, 6]} -{"sent_id": [0, 2, 1, 7, 11, 5]} -{"sent_id": [1, 4, 3, 10, 11, 2]} -{"sent_id": [2, 4, 1, 10, 0, 15]} -{"sent_id": [2, 0, 3, 1, 6, 7]} -{"sent_id": [2, 1, 4, 3, 0, 12]} -{"sent_id": [1, 2, 3, 11, 5, 6]} -{"sent_id": [1, 3, 2, 7, 5, 6]} -{"sent_id": [1, 2, 4, 14, 0, 5]} -{"sent_id": [4, 1, 2, 13, 5, 7]} -{"sent_id": [10, 4, 9, 2, 0, 1]} -{"sent_id": [2, 1, 6, 4, 7, 5]} -{"sent_id": [1, 8, 2, 7, 3, 9]} -{"sent_id": [2, 0, 12, 8, 6, 7]} -{"sent_id": [4, 0, 5, 7, 1, 2]} -{"sent_id": [0, 10, 1, 7, 8, 3]} -{"sent_id": [2, 4, 7, 5, 9, 0]} -{"sent_id": [1, 2, 15, 5, 9, 3]} -{"sent_id": [8, 18, 9, 13, 3, 16]} -{"sent_id": [2, 5, 7, 4, 0, 1]} -{"sent_id": [4, 5, 7, 8, 9, 6]} -{"sent_id": [1, 2, 0, 12, 4, 14]} -{"sent_id": [9, 5, 11, 4, 1, 3]} -{"sent_id": [1, 3, 2, 9, 11, 4]} -{"sent_id": [6, 0, 20, 15, 19, 16]} -{"sent_id": [4, 0, 1, 2, 3, 18]} -{"sent_id": [3, 2, 0, 1, 4, 8]} -{"sent_id": [4, 1, 5, 2, 3, 6]} -{"sent_id": [6, 0, 1, 2, 16, 15]} -{"sent_id": [2, 8, 3, 1, 0, 12]} -{"sent_id": [7, 9, 3, 5, 2, 4]} -{"sent_id": [2, 3, 1, 11, 0, 9]} -{"sent_id": [3, 4, 0, 2, 5, 13]} -{"sent_id": [3, 1, 5, 7, 6, 2]} -{"sent_id": [1, 2, 5, 4, 18, 7]} -{"sent_id": [5, 2, 3, 1, 4, 7]} -{"sent_id": [1, 2, 8, 3, 0, 4]} -{"sent_id": [0, 3, 7, 4, 5, 6]} -{"sent_id": [1, 5, 3, 4, 2, 8]} -{"sent_id": [3, 1, 6, 5, 2, 4]} -{"sent_id": [3, 1, 2, 9, 4, 5]} -{"sent_id": [3, 2, 1, 6, 8, 11]} -{"sent_id": [0, 1, 4, 3, 2, 8]} -{"sent_id": [5, 1, 6, 2, 3, 4]} -{"sent_id": [3, 0, 1, 5, 2, 11]} -{"sent_id": [3, 4, 2, 6, 9, 11]} -{"sent_id": [8, 6, 5, 0, 25, 1]} -{"sent_id": [1, 14, 3, 0, 10, 9]} -{"sent_id": [3, 4, 9, 10, 0, 2]} -{"sent_id": [3, 2, 5, 7, 8, 4]} -{"sent_id": [3, 2, 8, 4, 7, 6]} -{"sent_id": [3, 1, 4, 12, 2, 10]} -{"sent_id": [3, 2, 7, 4, 5, 6]} -{"sent_id": [2, 1, 0, 5, 9, 3]} -{"sent_id": [3, 5, 4, 1, 0, 2]} -{"sent_id": [2, 1, 5, 6, 8, 3]} -{"sent_id": [3, 1, 15, 2, 14, 0]} -{"sent_id": [2, 3, 8, 6, 5, 7]} -{"sent_id": [5, 0, 4, 3, 1, 2]} -{"sent_id": [1, 4, 6, 8, 2, 3]} -{"sent_id": [3, 0, 4, 2, 1, 7]} -{"sent_id": [2, 1, 4, 0, 13, 7]} -{"sent_id": [3, 10, 2, 0, 1, 11]} -{"sent_id": [4, 3, 1, 2, 7, 5]} -{"sent_id": [4, 8, 2, 9, 5, 10]} -{"sent_id": [2, 3, 0, 4, 7, 5]} -{"sent_id": [2, 1, 6, 12, 14, 5]} -{"sent_id": [5, 6, 0, 13, 3, 2]} -{"sent_id": [3, 1, 0, 12, 5, 2]} -{"sent_id": [2, 0, 7, 4, 1, 3]} -{"sent_id": [4, 1, 0, 5, 2, 6]} -{"sent_id": [3, 6, 10, 0, 2, 14]} -{"sent_id": [1, 6, 4, 2, 0, 3]} -{"sent_id": [1, 0, 2, 5, 6, 9]} -{"sent_id": [3, 2, 10, 1, 4, 9]} -{"sent_id": [3, 0, 1, 8, 2, 7]} -{"sent_id": [1, 2, 5, 4, 7, 3]} -{"sent_id": [0, 1, 16, 2, 3, 13]} -{"sent_id": [2, 1, 4, 5, 3, 6]} -{"sent_id": [1, 5, 0, 8, 10, 4]} -{"sent_id": [4, 1, 0, 5, 2, 8]} -{"sent_id": [2, 0, 4, 3, 18, 6]} -{"sent_id": [8, 1, 0, 2, 4, 3]} -{"sent_id": [0, 2, 3, 1, 4, 5]} -{"sent_id": [1, 2, 3, 0, 6, 5]} -{"sent_id": [1, 3, 12, 2, 8, 5]} -{"sent_id": [3, 0, 1, 2, 17, 4]} -{"sent_id": [1, 3, 15, 4, 13, 8]} -{"sent_id": [4, 12, 3, 0, 11, 13]} -{"sent_id": [1, 2, 3, 7, 4, 0]} -{"sent_id": [1, 2, 3, 5, 9, 6]} -{"sent_id": [1, 9, 4, 0, 3, 10]} -{"sent_id": [3, 0, 8, 9, 6, 7]} -{"sent_id": [4, 2, 3, 14, 0, 15]} -{"sent_id": [4, 7, 1, 3, 12, 10]} -{"sent_id": [3, 2, 13, 7, 0, 15]} -{"sent_id": [1, 2, 5, 6, 3, 4]} -{"sent_id": [1, 2, 0, 4, 3, 5]} -{"sent_id": [5, 8, 3, 7, 15, 1]} -{"sent_id": [3, 8, 2, 1, 0, 9]} -{"sent_id": [2, 1, 4, 0, 12, 10]} -{"sent_id": [6, 3, 7, 2, 11, 1]} -{"sent_id": [5, 8, 4, 6, 9, 10]} -{"sent_id": [4, 9, 3, 1, 2, 6]} -{"sent_id": [2, 4, 3, 6, 1, 9]} -{"sent_id": [2, 3, 4, 8, 0, 9]} -{"sent_id": [1, 0, 3, 5, 9, 8]} -{"sent_id": [4, 0, 10, 1, 19, 3]} -{"sent_id": [3, 2, 4, 0, 1, 15]} -{"sent_id": [2, 3, 4, 1, 5, 0]} -{"sent_id": [3, 1, 2, 0, 4, 7]} -{"sent_id": [8, 10, 9, 11, 5, 12]} -{"sent_id": [3, 1, 2, 4, 6, 11]} -{"sent_id": [3, 2, 1, 8, 5, 4]} -{"sent_id": [4, 1, 0, 9, 5, 7]} -{"sent_id": [2, 4, 3, 5, 0, 8]} -{"sent_id": [3, 1, 9, 15, 2, 10]} -{"sent_id": [3, 1, 4, 8, 0, 9]} -{"sent_id": [1, 2, 0, 4, 3, 6]} -{"sent_id": [2, 3, 4, 1, 5, 11]} -{"sent_id": [6, 0, 17, 1, 2, 3]} -{"sent_id": [3, 0, 4, 1, 2, 8]} -{"sent_id": [1, 3, 5, 13, 2, 10]} -{"sent_id": [17, 18, 14, 6, 16, 1]} -{"sent_id": [8, 0, 1, 3, 2, 9]} -{"sent_id": [1, 3, 14, 6, 9, 2]} -{"sent_id": [3, 1, 2, 4, 12, 5]} -{"sent_id": [9, 4, 1, 5, 2, 7]} -{"sent_id": [4, 3, 2, 0, 5, 1]} -{"sent_id": [1, 2, 3, 12, 4, 0]} -{"sent_id": [2, 1, 7, 3, 6, 0]} -{"sent_id": [2, 1, 3, 6, 0, 5]} -{"sent_id": [2, 0, 7, 15, 3, 11]} -{"sent_id": [1, 8, 9, 2, 0, 7]} -{"sent_id": [11, 0, 14, 9, 17, 7]} -{"sent_id": [2, 1, 0, 3, 4, 15]} -{"sent_id": [1, 2, 8, 6, 5, 4]} -{"sent_id": [1, 3, 0, 5, 7, 2]} -{"sent_id": [0, 1, 12, 2, 5, 3]} -{"sent_id": [2, 1, 4, 5, 12, 8]} -{"sent_id": [5, 3, 6, 1, 13, 4]} -{"sent_id": [0, 2, 8, 7, 1, 3]} -{"sent_id": [2, 6, 3, 1, 5, 11]} -{"sent_id": [1, 0, 10, 3, 2, 4]} -{"sent_id": [1, 3, 0, 5, 9, 6]} -{"sent_id": [0, 3, 9, 2, 1, 5]} -{"sent_id": [0, 2, 1, 4, 3, 5]} -{"sent_id": [15, 9, 2, 0, 1, 5]} -{"sent_id": [3, 0, 2, 1, 20, 5]} -{"sent_id": [3, 8, 1, 2, 15, 7]} -{"sent_id": [3, 2, 16, 7, 10, 12]} -{"sent_id": [2, 3, 4, 0, 8, 7]} -{"sent_id": [3, 11, 9, 6, 7, 2]} -{"sent_id": [1, 2, 0, 4, 8, 3]} -{"sent_id": [1, 3, 4, 17, 2, 16]} -{"sent_id": [2, 0, 1, 5, 7, 8]} -{"sent_id": [3, 1, 2, 10, 7, 8]} -{"sent_id": [3, 0, 2, 1, 5, 7]} -{"sent_id": [3, 1, 8, 7, 4, 2]} -{"sent_id": [2, 3, 1, 0, 9, 4]} -{"sent_id": [3, 8, 0, 4, 1, 7]} -{"sent_id": [1, 2, 7, 4, 8, 3]} -{"sent_id": [2, 14, 3, 0, 4, 12]} -{"sent_id": [2, 4, 3, 0, 6, 9]} -{"sent_id": [3, 4, 5, 9, 0, 12]} -{"sent_id": [3, 1, 0, 2, 7, 4]} -{"sent_id": [6, 3, 2, 1, 5, 10]} -{"sent_id": [1, 13, 0, 3, 2, 15]} -{"sent_id": [3, 1, 8, 2, 4, 0]} -{"sent_id": [7, 2, 4, 1, 3, 8]} -{"sent_id": [2, 4, 3, 8, 0, 21]} -{"sent_id": [1, 2, 4, 5, 3, 6]} -{"sent_id": [3, 1, 2, 4, 10, 6]} -{"sent_id": [3, 8, 9, 4, 6, 7]} -{"sent_id": [1, 3, 5, 2, 6, 11]} -{"sent_id": [1, 2, 0, 7, 10, 3]} -{"sent_id": [1, 2, 4, 14, 0, 5]} -{"sent_id": [4, 2, 1, 5, 14, 8]} -{"sent_id": [3, 10, 1, 11, 5, 6]} -{"sent_id": [3, 0, 1, 2, 5, 4]} -{"sent_id": [2, 10, 0, 12, 4, 14]} -{"sent_id": [3, 5, 4, 9, 1, 11]} -{"sent_id": [4, 3, 1, 2, 9, 0]} -{"sent_id": [3, 1, 6, 5, 10, 12]} -{"sent_id": [3, 2, 1, 10, 5, 4]} -{"sent_id": [3, 4, 1, 14, 2, 17]} -{"sent_id": [4, 2, 5, 0, 1, 11]} -{"sent_id": [3, 1, 2, 0, 9, 14]} -{"sent_id": [2, 1, 3, 14, 5, 6]} -{"sent_id": [1, 11, 2, 5, 0, 7]} -{"sent_id": [2, 10, 8, 5, 4, 11]} -{"sent_id": [13, 3, 1, 2, 4, 0]} -{"sent_id": [3, 8, 16, 9, 11, 2]} -{"sent_id": [3, 5, 2, 1, 4, 0]} -{"sent_id": [4, 1, 5, 3, 10, 2]} -{"sent_id": [5, 1, 2, 4, 7, 6]} -{"sent_id": [2, 6, 8, 5, 3, 1]} -{"sent_id": [1, 2, 7, 4, 9, 3]} -{"sent_id": [4, 1, 6, 0, 23, 5]} -{"sent_id": [5, 3, 1, 4, 2, 0]} -{"sent_id": [12, 10, 8, 0, 1, 20]} -{"sent_id": [4, 12, 0, 13, 3, 1]} -{"sent_id": [1, 6, 7, 4, 5, 12]} -{"sent_id": [1, 2, 3, 14, 6, 7]} -{"sent_id": [1, 6, 5, 3, 2, 0]} -{"sent_id": [2, 3, 0, 5, 4, 14]} -{"sent_id": [3, 5, 1, 4, 11, 0]} -{"sent_id": [3, 0, 1, 4, 5, 8]} -{"sent_id": [12, 4, 0, 8, 10, 1]} -{"sent_id": [0, 2, 9, 3, 12, 11]} -{"sent_id": [1, 3, 7, 4, 2, 0]} -{"sent_id": [3, 2, 0, 5, 1, 6]} -{"sent_id": [3, 1, 0, 2, 5, 19]} -{"sent_id": [2, 1, 5, 3, 4, 7]} -{"sent_id": [6, 1, 7, 3, 4, 2]} -{"sent_id": [0, 6, 20, 1, 14, 4]} -{"sent_id": [2, 1, 12, 3, 0, 4]} -{"sent_id": [5, 2, 3, 9, 1, 7]} -{"sent_id": [1, 11, 2, 0, 7, 10]} -{"sent_id": [3, 4, 8, 12, 2, 6]} -{"sent_id": [1, 8, 6, 2, 4, 0]} -{"sent_id": [1, 2, 4, 6, 0, 3]} -{"sent_id": [3, 1, 4, 5, 2, 9]} -{"sent_id": [13, 2, 5, 1, 3, 8]} -{"sent_id": [1, 2, 4, 3, 0, 10]} -{"sent_id": [7, 1, 6, 3, 8, 2]} -{"sent_id": [3, 0, 2, 14, 7, 5]} -{"sent_id": [1, 4, 2, 8, 3, 5]} -{"sent_id": [3, 4, 0, 14, 5, 9]} -{"sent_id": [1, 15, 5, 3, 4, 0]} -{"sent_id": [1, 2, 5, 4, 8, 17]} -{"sent_id": [1, 4, 2, 5, 7, 0]} -{"sent_id": [4, 2, 1, 3, 5, 0]} -{"sent_id": [4, 3, 0, 1, 2, 5]} -{"sent_id": [10, 3, 2, 7, 9, 4]} -{"sent_id": [3, 0, 1, 2, 4, 7]} -{"sent_id": [2, 4, 1, 3, 12, 18]} -{"sent_id": [2, 1, 3, 4, 6, 0]} -{"sent_id": [1, 2, 4, 5, 3, 7]} -{"sent_id": [1, 2, 3, 4, 6, 0]} -{"sent_id": [1, 4, 9, 3, 2, 10]} -{"sent_id": [6, 7, 1, 14, 19, 3]} -{"sent_id": [3, 1, 4, 2, 11, 15]} -{"sent_id": [3, 10, 6, 5, 0, 4]} -{"sent_id": [0, 1, 2, 3, 5, 6]} -{"sent_id": [1, 6, 2, 0, 4, 17]} -{"sent_id": [2, 1, 13, 3, 9, 4]} -{"sent_id": [1, 2, 4, 5, 14, 9]} -{"sent_id": [0, 4, 2, 3, 5, 1]} -{"sent_id": [1, 9, 0, 2, 17, 19]} -{"sent_id": [3, 9, 1, 4, 0, 10]} -{"sent_id": [3, 0, 5, 4, 7, 2]} -{"sent_id": [3, 6, 4, 5, 2, 1]} -{"sent_id": [0, 9, 1, 13, 3, 4]} -{"sent_id": [3, 1, 2, 9, 8, 4]} -{"sent_id": [0, 7, 14, 3, 2, 15]} -{"sent_id": [1, 3, 2, 10, 11, 0]} -{"sent_id": [1, 4, 0, 5, 8, 12]} -{"sent_id": [1, 2, 4, 13, 0, 5]} -{"sent_id": [2, 1, 4, 7, 3, 5]} -{"sent_id": [0, 3, 2, 1, 4, 12]} -{"sent_id": [1, 4, 2, 8, 9, 3]} -{"sent_id": [2, 1, 4, 5, 0, 8]} -{"sent_id": [1, 4, 2, 11, 3, 8]} -{"sent_id": [1, 0, 2, 9, 4, 3]} -{"sent_id": [2, 14, 1, 0, 6, 7]} -{"sent_id": [0, 1, 5, 2, 3, 8]} -{"sent_id": [1, 21, 16, 23, 17, 5]} -{"sent_id": [1, 2, 3, 4, 0, 6]} -{"sent_id": [1, 2, 11, 0, 7, 5]} -{"sent_id": [1, 3, 4, 2, 0, 7]} -{"sent_id": [7, 0, 6, 8, 2, 9]} -{"sent_id": [3, 1, 5, 8, 2, 7]} -{"sent_id": [1, 2, 0, 6, 15, 7]} -{"sent_id": [2, 3, 5, 17, 9, 4]} -{"sent_id": [2, 9, 8, 11, 14, 3]} -{"sent_id": [0, 4, 3, 6, 5, 2]} -{"sent_id": [11, 9, 4, 0, 8, 1]} -{"sent_id": [2, 4, 1, 3, 12, 16]} -{"sent_id": [1, 16, 2, 3, 0, 9]} -{"sent_id": [3, 5, 2, 1, 8, 6]} -{"sent_id": [8, 1, 2, 15, 0, 5]} -{"sent_id": [1, 2, 0, 8, 9, 5]} -{"sent_id": [1, 3, 5, 4, 2, 7]} -{"sent_id": [0, 1, 4, 9, 11, 2]} -{"sent_id": [3, 4, 9, 5, 1, 2]} -{"sent_id": [3, 7, 8, 6, 2, 4]} -{"sent_id": [3, 2, 8, 7, 13, 1]} -{"sent_id": [2, 1, 6, 5, 3, 12]} -{"sent_id": [0, 3, 4, 1, 2, 15]} -{"sent_id": [7, 3, 1, 2, 14, 5]} -{"sent_id": [4, 5, 17, 6, 18, 2]} -{"sent_id": [1, 4, 2, 3, 0, 12]} -{"sent_id": [1, 2, 7, 9, 5, 6]} -{"sent_id": [1, 2, 3, 5, 6, 9]} -{"sent_id": [2, 1, 3, 0, 4, 8]} -{"sent_id": [0, 1, 5, 2, 14, 4]} -{"sent_id": [6, 0, 2, 4, 3, 5]} -{"sent_id": [1, 4, 5, 3, 6, 2]} -{"sent_id": [1, 2, 0, 7, 5, 3]} -{"sent_id": [1, 2, 3, 6, 7, 0]} -{"sent_id": [3, 4, 1, 15, 10, 6]} -{"sent_id": [2, 3, 0, 5, 4, 7]} -{"sent_id": [15, 3, 4, 5, 1, 2]} -{"sent_id": [0, 1, 10, 2, 15, 3]} -{"sent_id": [0, 5, 1, 6, 4, 10]} -{"sent_id": [6, 3, 1, 7, 9, 2]} -{"sent_id": [1, 3, 2, 7, 4, 0]} -{"sent_id": [1, 2, 0, 7, 8, 4]} -{"sent_id": [3, 2, 4, 8, 5, 7]} -{"sent_id": [1, 9, 4, 0, 19, 18]} -{"sent_id": [1, 0, 2, 10, 5, 6]} -{"sent_id": [2, 7, 8, 6, 9, 5]} -{"sent_id": [1, 2, 4, 11, 7, 3]} -{"sent_id": [3, 2, 6, 5, 18, 9]} -{"sent_id": [3, 0, 14, 9, 4, 2]} -{"sent_id": [3, 2, 1, 11, 8, 7]} -{"sent_id": [2, 3, 4, 1, 6, 5]} -{"sent_id": [2, 1, 3, 7, 4, 6]} -{"sent_id": [1, 18, 4, 2, 5, 0]} -{"sent_id": [4, 0, 11, 2, 1, 6]} -{"sent_id": [0, 5, 14, 4, 1, 10]} -{"sent_id": [1, 0, 3, 6, 2, 5]} -{"sent_id": [1, 3, 4, 0, 11, 12]} -{"sent_id": [1, 2, 5, 0, 3, 10]} -{"sent_id": [11, 17, 6, 9, 3, 5]} -{"sent_id": [3, 4, 2, 1, 5, 7]} -{"sent_id": [0, 2, 7, 9, 1, 4]} -{"sent_id": [0, 3, 4, 1, 2, 5]} -{"sent_id": [1, 3, 2, 5, 9, 8]} -{"sent_id": [0, 3, 5, 1, 2, 4]} -{"sent_id": [4, 1, 3, 8, 2, 15]} -{"sent_id": [3, 2, 6, 1, 4, 12]} -{"sent_id": [3, 8, 1, 2, 4, 7]} -{"sent_id": [5, 1, 0, 7, 16, 11]} -{"sent_id": [7, 21, 6, 4, 11, 8]} -{"sent_id": [3, 1, 2, 4, 0, 17]} -{"sent_id": [3, 18, 15, 1, 7, 0]} -{"sent_id": [3, 4, 0, 14, 2, 7]} -{"sent_id": [3, 1, 2, 4, 11, 0]} -{"sent_id": [1, 2, 4, 5, 0, 11]} -{"sent_id": [1, 4, 3, 5, 2, 10]} -{"sent_id": [18, 0, 10, 2, 12, 17]} -{"sent_id": [1, 3, 10, 2, 4, 11]} -{"sent_id": [6, 1, 0, 4, 7, 5]} -{"sent_id": [1, 2, 3, 9, 0, 4]} -{"sent_id": [6, 10, 2, 9, 15, 11]} -{"sent_id": [1, 2, 4, 3, 6, 7]} -{"sent_id": [0, 2, 1, 5, 14, 4]} -{"sent_id": [1, 0, 11, 5, 10, 2]} -{"sent_id": [0, 3, 4, 1, 5, 11]} -{"sent_id": [1, 0, 9, 4, 2, 3]} -{"sent_id": [2, 1, 5, 4, 3, 8]} -{"sent_id": [3, 13, 17, 15, 5, 2]} -{"sent_id": [1, 2, 0, 9, 7, 6]} -{"sent_id": [0, 9, 4, 2, 1, 3]} -{"sent_id": [0, 1, 4, 2, 10, 7]} -{"sent_id": [1, 7, 9, 6, 0, 2]} -{"sent_id": [5, 8, 6, 15, 7, 1]} -{"sent_id": [2, 3, 13, 15, 1, 0]} -{"sent_id": [2, 3, 4, 8, 5, 9]} -{"sent_id": [14, 0, 1, 5, 2, 4]} -{"sent_id": [1, 4, 3, 9, 2, 0]} -{"sent_id": [5, 4, 3, 8, 14, 12]} -{"sent_id": [0, 1, 5, 2, 4, 7]} -{"sent_id": [0, 1, 3, 11, 8, 13]} -{"sent_id": [6, 1, 19, 11, 3, 2]} -{"sent_id": [4, 5, 0, 2, 6, 10]} -{"sent_id": [4, 1, 2, 3, 12, 8]} -{"sent_id": [0, 2, 6, 8, 14, 1]} -{"sent_id": [2, 3, 6, 1, 4, 10]} -{"sent_id": [1, 4, 5, 2, 8, 3]} -{"sent_id": [5, 4, 2, 3, 7, 8]} -{"sent_id": [4, 1, 10, 3, 0, 5]} -{"sent_id": [1, 0, 2, 5, 3, 9]} -{"sent_id": [0, 5, 9, 14, 15, 4]} -{"sent_id": [1, 4, 5, 2, 7, 15]} -{"sent_id": [3, 2, 1, 0, 4, 12]} -{"sent_id": [2, 7, 3, 6, 8, 5]} -{"sent_id": [12, 2, 1, 4, 3, 10]} -{"sent_id": [3, 1, 4, 2, 5, 0]} -{"sent_id": [1, 0, 6, 14, 15, 8]} -{"sent_id": [1, 5, 3, 2, 4, 6]} -{"sent_id": [1, 9, 7, 10, 2, 3]} -{"sent_id": [4, 0, 12, 1, 14, 7]} -{"sent_id": [4, 1, 5, 8, 14, 7]} -{"sent_id": [0, 1, 3, 4, 2, 13]} -{"sent_id": [1, 2, 3, 7, 6, 14]} -{"sent_id": [9, 0, 8, 10, 15, 11]} -{"sent_id": [6, 1, 14, 2, 3, 5]} -{"sent_id": [1, 6, 2, 4, 5, 0]} -{"sent_id": [5, 1, 3, 9, 0, 7]} -{"sent_id": [1, 2, 0, 14, 15, 13]} -{"sent_id": [2, 11, 8, 12, 1, 4]} -{"sent_id": [4, 10, 8, 7, 15, 1]} -{"sent_id": [3, 0, 6, 7, 8, 2]} -{"sent_id": [5, 8, 7, 6, 2, 1]} -{"sent_id": [3, 1, 4, 10, 2, 6]} -{"sent_id": [2, 7, 5, 18, 0, 9]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [3, 2, 5, 12, 6, 14]} -{"sent_id": [1, 2, 6, 3, 4, 5]} -{"sent_id": [1, 10, 3, 14, 11, 9]} -{"sent_id": [1, 0, 2, 14, 15, 3]} -{"sent_id": [1, 0, 2, 3, 17, 5]} -{"sent_id": [1, 2, 3, 0, 6, 4]} -{"sent_id": [4, 9, 6, 7, 5, 12]} -{"sent_id": [1, 3, 4, 2, 5, 0]} -{"sent_id": [6, 5, 13, 4, 3, 2]} -{"sent_id": [13, 6, 4, 2, 1, 5]} -{"sent_id": [1, 6, 2, 10, 11, 7]} -{"sent_id": [0, 2, 6, 7, 3, 8]} -{"sent_id": [4, 0, 5, 3, 1, 2]} -{"sent_id": [2, 1, 4, 3, 0, 8]} -{"sent_id": [1, 6, 3, 13, 2, 4]} -{"sent_id": [2, 6, 1, 5, 3, 0]} -{"sent_id": [4, 3, 5, 1, 15, 2]} -{"sent_id": [6, 3, 1, 4, 9, 7]} -{"sent_id": [11, 0, 4, 3, 8, 7]} -{"sent_id": [3, 1, 2, 5, 7, 10]} -{"sent_id": [2, 5, 3, 4, 10, 15]} -{"sent_id": [0, 3, 2, 4, 7, 10]} -{"sent_id": [0, 4, 2, 5, 3, 6]} -{"sent_id": [6, 17, 13, 3, 23, 1]} -{"sent_id": [4, 5, 14, 0, 12, 13]} -{"sent_id": [5, 6, 2, 17, 1, 4]} -{"sent_id": [2, 1, 0, 3, 7, 12]} -{"sent_id": [3, 2, 1, 9, 4, 10]} -{"sent_id": [3, 4, 2, 9, 5, 10]} -{"sent_id": [4, 8, 11, 1, 5, 3]} -{"sent_id": [1, 10, 3, 0, 2, 8]} -{"sent_id": [4, 2, 1, 3, 5, 0]} -{"sent_id": [0, 1, 8, 11, 7, 2]} -{"sent_id": [6, 4, 2, 3, 1, 0]} -{"sent_id": [0, 3, 1, 2, 6, 7]} -{"sent_id": [6, 4, 10, 7, 13, 8]} -{"sent_id": [1, 2, 4, 11, 9, 0]} -{"sent_id": [1, 9, 3, 12, 2, 5]} -{"sent_id": [0, 2, 1, 15, 14, 4]} -{"sent_id": [1, 2, 0, 4, 6, 3]} -{"sent_id": [1, 8, 3, 9, 11, 4]} -{"sent_id": [2, 0, 12, 3, 1, 4]} -{"sent_id": [5, 2, 3, 7, 8, 1]} -{"sent_id": [7, 10, 0, 9, 4, 11]} -{"sent_id": [1, 3, 2, 0, 5, 7]} -{"sent_id": [0, 2, 13, 4, 1, 3]} -{"sent_id": [3, 6, 4, 9, 5, 0]} -{"sent_id": [2, 3, 0, 4, 1, 7]} -{"sent_id": [6, 20, 3, 19, 5, 1]} -{"sent_id": [10, 8, 1, 5, 11, 6]} -{"sent_id": [3, 2, 1, 6, 4, 0]} -{"sent_id": [1, 2, 7, 10, 0, 4]} -{"sent_id": [1, 3, 0, 5, 2, 4]} -{"sent_id": [4, 5, 6, 3, 7, 15]} -{"sent_id": [3, 4, 5, 0, 2, 8]} -{"sent_id": [1, 5, 2, 6, 11, 3]} -{"sent_id": [3, 5, 1, 2, 4, 6]} -{"sent_id": [4, 6, 2, 5, 3, 18]} -{"sent_id": [10, 0, 2, 3, 11, 1]} -{"sent_id": [2, 1, 0, 13, 3, 4]} -{"sent_id": [0, 3, 1, 2, 4, 8]} -{"sent_id": [4, 5, 15, 7, 1, 16]} -{"sent_id": [0, 3, 2, 12, 4, 1]} -{"sent_id": [2, 8, 0, 20, 3, 7]} -{"sent_id": [3, 10, 2, 6, 12, 11]} -{"sent_id": [2, 0, 5, 8, 4, 7]} -{"sent_id": [7, 6, 8, 11, 3, 4]} -{"sent_id": [3, 1, 4, 7, 2, 15]} -{"sent_id": [1, 3, 2, 5, 4, 0]} -{"sent_id": [3, 1, 4, 2, 0, 6]} -{"sent_id": [3, 1, 2, 7, 6, 11]} -{"sent_id": [0, 2, 3, 1, 4, 13]} -{"sent_id": [2, 5, 11, 8, 14, 0]} -{"sent_id": [8, 6, 7, 2, 0, 3]} -{"sent_id": [1, 3, 7, 5, 4, 16]} -{"sent_id": [0, 1, 5, 2, 3, 4]} -{"sent_id": [3, 9, 1, 8, 6, 0]} -{"sent_id": [1, 2, 12, 3, 4, 5]} -{"sent_id": [0, 2, 6, 3, 14, 1]} -{"sent_id": [8, 2, 5, 0, 1, 10]} -{"sent_id": [2, 0, 5, 12, 1, 8]} -{"sent_id": [5, 6, 0, 10, 3, 9]} -{"sent_id": [0, 8, 3, 1, 2, 11]} -{"sent_id": [1, 5, 2, 9, 3, 6]} -{"sent_id": [2, 3, 13, 4, 0, 9]} -{"sent_id": [1, 9, 6, 10, 2, 14]} -{"sent_id": [3, 1, 12, 0, 4, 2]} -{"sent_id": [4, 2, 1, 3, 7, 5]} -{"sent_id": [3, 0, 8, 1, 6, 10]} -{"sent_id": [1, 2, 4, 5, 6, 15]} -{"sent_id": [1, 5, 13, 2, 7, 14]} -{"sent_id": [4, 0, 8, 1, 3, 2]} -{"sent_id": [0, 10, 11, 3, 9, 1]} -{"sent_id": [2, 4, 3, 9, 0, 8]} -{"sent_id": [3, 14, 7, 4, 2, 8]} -{"sent_id": [2, 1, 13, 12, 0, 4]} -{"sent_id": [3, 4, 2, 1, 10, 8]} -{"sent_id": [1, 3, 10, 2, 11, 0]} -{"sent_id": [1, 7, 0, 2, 8, 10]} -{"sent_id": [1, 3, 2, 0, 4, 6]} -{"sent_id": [3, 0, 5, 9, 1, 7]} -{"sent_id": [1, 2, 4, 0, 6, 5]} -{"sent_id": [1, 5, 10, 3, 2, 7]} -{"sent_id": [1, 6, 9, 5, 0, 7]} -{"sent_id": [3, 4, 1, 10, 15, 11]} -{"sent_id": [3, 1, 4, 8, 6, 14]} -{"sent_id": [8, 13, 2, 14, 18, 15]} -{"sent_id": [1, 2, 3, 4, 0, 14]} -{"sent_id": [5, 4, 3, 1, 2, 8]} -{"sent_id": [3, 1, 2, 0, 8, 9]} -{"sent_id": [2, 0, 7, 8, 9, 1]} -{"sent_id": [1, 2, 0, 3, 10, 11]} -{"sent_id": [1, 3, 5, 6, 0, 4]} -{"sent_id": [1, 3, 4, 13, 2, 0]} -{"sent_id": [1, 11, 3, 2, 0, 12]} -{"sent_id": [0, 1, 2, 4, 5, 12]} -{"sent_id": [1, 2, 3, 0, 9, 4]} -{"sent_id": [3, 1, 12, 13, 2, 5]} -{"sent_id": [1, 2, 3, 0, 4, 9]} -{"sent_id": [5, 1, 0, 6, 10, 3]} -{"sent_id": [1, 0, 3, 5, 4, 8]} -{"sent_id": [3, 1, 4, 2, 9, 12]} -{"sent_id": [0, 2, 1, 9, 3, 5]} -{"sent_id": [16, 18, 15, 14, 7, 6]} -{"sent_id": [3, 1, 2, 8, 0, 4]} -{"sent_id": [1, 2, 5, 3, 13, 4]} -{"sent_id": [2, 1, 4, 3, 8, 9]} -{"sent_id": [6, 1, 2, 7, 5, 0]} -{"sent_id": [0, 1, 10, 9, 5, 8]} -{"sent_id": [0, 2, 4, 1, 5, 12]} -{"sent_id": [3, 12, 4, 13, 1, 0]} -{"sent_id": [5, 7, 17, 6, 2, 1]} -{"sent_id": [1, 2, 5, 7, 0, 6]} -{"sent_id": [9, 4, 13, 14, 3, 1]} -{"sent_id": [1, 2, 4, 0, 5, 6]} -{"sent_id": [0, 3, 1, 2, 5, 12]} -{"sent_id": [0, 4, 12, 3, 16, 2]} -{"sent_id": [2, 1, 4, 7, 3, 0]} -{"sent_id": [2, 7, 1, 12, 4, 13]} -{"sent_id": [0, 3, 2, 1, 9, 10]} -{"sent_id": [2, 3, 5, 9, 4, 14]} -{"sent_id": [1, 3, 2, 10, 11, 13]} -{"sent_id": [1, 4, 2, 13, 12, 3]} -{"sent_id": [2, 1, 7, 0, 3, 9]} -{"sent_id": [3, 0, 5, 8, 7, 6]} -{"sent_id": [1, 3, 10, 2, 4, 11]} -{"sent_id": [3, 4, 15, 8, 9, 6]} -{"sent_id": [3, 2, 4, 0, 5, 18]} -{"sent_id": [2, 1, 3, 4, 6, 7]} -{"sent_id": [3, 1, 0, 4, 2, 14]} -{"sent_id": [2, 14, 3, 5, 4, 0]} -{"sent_id": [1, 2, 3, 9, 0, 4]} -{"sent_id": [3, 9, 2, 0, 4, 6]} -{"sent_id": [3, 2, 4, 1, 6, 8]} -{"sent_id": [4, 1, 2, 3, 6, 8]} -{"sent_id": [2, 0, 4, 8, 7, 10]} -{"sent_id": [1, 3, 12, 2, 6, 11]} -{"sent_id": [4, 8, 5, 1, 2, 0]} -{"sent_id": [1, 4, 2, 7, 0, 6]} -{"sent_id": [3, 0, 4, 9, 14, 1]} -{"sent_id": [0, 1, 10, 3, 4, 5]} -{"sent_id": [3, 0, 5, 1, 6, 8]} -{"sent_id": [1, 0, 4, 2, 11, 12]} -{"sent_id": [2, 3, 1, 6, 11, 0]} -{"sent_id": [3, 2, 11, 10, 13, 8]} -{"sent_id": [3, 0, 4, 14, 2, 10]} -{"sent_id": [3, 1, 10, 11, 0, 5]} -{"sent_id": [1, 2, 6, 5, 3, 11]} -{"sent_id": [0, 1, 2, 5, 3, 4]} -{"sent_id": [0, 12, 3, 2, 4, 9]} -{"sent_id": [2, 5, 0, 3, 4, 11]} -{"sent_id": [3, 1, 4, 5, 2, 7]} -{"sent_id": [1, 2, 10, 7, 3, 5]} -{"sent_id": [1, 2, 11, 6, 16, 8]} -{"sent_id": [2, 0, 3, 5, 1, 4]} -{"sent_id": [3, 2, 4, 1, 7, 8]} -{"sent_id": [4, 0, 1, 3, 16, 2]} -{"sent_id": [4, 3, 7, 6, 10, 0]} -{"sent_id": [5, 1, 6, 3, 2, 7]} -{"sent_id": [3, 2, 1, 5, 8, 6]} -{"sent_id": [1, 3, 2, 6, 4, 14]} -{"sent_id": [1, 8, 3, 0, 7, 2]} -{"sent_id": [2, 1, 3, 8, 5, 0]} -{"sent_id": [3, 1, 2, 4, 5, 0]} -{"sent_id": [4, 1, 13, 2, 5, 3]} -{"sent_id": [1, 2, 3, 8, 9, 11]} -{"sent_id": [5, 9, 0, 4, 3, 2]} -{"sent_id": [4, 6, 11, 16, 19, 7]} -{"sent_id": [2, 3, 0, 4, 12, 11]} -{"sent_id": [2, 1, 4, 6, 5, 7]} -{"sent_id": [3, 2, 4, 0, 5, 7]} -{"sent_id": [4, 5, 3, 11, 6, 1]} -{"sent_id": [2, 1, 5, 8, 6, 3]} -{"sent_id": [4, 3, 1, 12, 11, 8]} -{"sent_id": [1, 2, 4, 6, 0, 3]} -{"sent_id": [1, 2, 6, 5, 12, 7]} -{"sent_id": [1, 2, 5, 3, 4, 6]} -{"sent_id": [1, 2, 18, 7, 5, 3]} -{"sent_id": [0, 6, 22, 7, 23, 4]} -{"sent_id": [2, 0, 6, 1, 10, 3]} -{"sent_id": [3, 2, 0, 1, 6, 4]} -{"sent_id": [2, 1, 0, 5, 9, 3]} -{"sent_id": [0, 6, 1, 2, 5, 3]} -{"sent_id": [1, 3, 2, 0, 9, 7]} -{"sent_id": [0, 3, 5, 14, 6, 1]} -{"sent_id": [0, 9, 1, 6, 8, 5]} -{"sent_id": [1, 0, 4, 12, 14, 15]} -{"sent_id": [1, 6, 7, 3, 2, 5]} -{"sent_id": [3, 1, 13, 2, 0, 4]} -{"sent_id": [2, 1, 8, 6, 4, 0]} -{"sent_id": [2, 3, 4, 5, 0, 6]} -{"sent_id": [1, 2, 3, 4, 5, 10]} -{"sent_id": [7, 19, 1, 0, 20, 9]} -{"sent_id": [2, 5, 4, 1, 8, 6]} -{"sent_id": [2, 3, 1, 12, 7, 4]} -{"sent_id": [1, 7, 8, 3, 4, 5]} -{"sent_id": [13, 0, 14, 1, 2, 7]} -{"sent_id": [1, 13, 6, 2, 4, 10]} -{"sent_id": [2, 1, 5, 4, 6, 3]} -{"sent_id": [5, 7, 0, 2, 6, 12]} -{"sent_id": [2, 1, 3, 5, 7, 6]} -{"sent_id": [5, 1, 3, 2, 0, 4]} -{"sent_id": [0, 3, 1, 12, 9, 7]} -{"sent_id": [0, 2, 7, 1, 6, 9]} -{"sent_id": [5, 11, 1, 2, 0, 12]} -{"sent_id": [8, 1, 9, 2, 4, 17]} -{"sent_id": [1, 2, 3, 4, 0, 15]} -{"sent_id": [7, 1, 3, 19, 0, 20]} -{"sent_id": [3, 1, 0, 4, 6, 2]} -{"sent_id": [1, 2, 4, 13, 3, 0]} -{"sent_id": [2, 7, 1, 4, 10, 9]} -{"sent_id": [4, 5, 9, 7, 2, 11]} -{"sent_id": [1, 2, 3, 5, 18, 4]} -{"sent_id": [1, 2, 0, 5, 6, 9]} -{"sent_id": [1, 2, 0, 4, 6, 7]} -{"sent_id": [3, 4, 2, 7, 6, 1]} -{"sent_id": [2, 3, 1, 4, 12, 5]} -{"sent_id": [3, 4, 10, 1, 14, 2]} -{"sent_id": [3, 1, 0, 4, 2, 11]} -{"sent_id": [1, 2, 5, 3, 6, 4]} -{"sent_id": [3, 2, 16, 1, 4, 5]} -{"sent_id": [6, 1, 2, 8, 5, 13]} -{"sent_id": [3, 0, 8, 1, 6, 5]} -{"sent_id": [1, 2, 9, 3, 8, 0]} -{"sent_id": [4, 5, 2, 3, 7, 8]} -{"sent_id": [2, 4, 3, 5, 9, 8]} -{"sent_id": [1, 2, 5, 0, 4, 10]} -{"sent_id": [16, 20, 17, 19, 12, 22]} -{"sent_id": [2, 4, 1, 5, 0, 3]} -{"sent_id": [1, 6, 2, 5, 4, 13]} -{"sent_id": [1, 2, 3, 15, 6, 0]} -{"sent_id": [1, 2, 3, 8, 4, 12]} -{"sent_id": [2, 0, 7, 1, 5, 3]} -{"sent_id": [1, 3, 2, 9, 4, 7]} -{"sent_id": [3, 2, 8, 1, 7, 6]} -{"sent_id": [0, 2, 1, 16, 10, 14]} -{"sent_id": [5, 1, 2, 3, 8, 0]} -{"sent_id": [0, 3, 7, 6, 1, 4]} -{"sent_id": [1, 13, 2, 14, 12, 15]} -{"sent_id": [8, 4, 18, 10, 1, 0]} -{"sent_id": [4, 3, 2, 0, 5, 20]} -{"sent_id": [1, 2, 8, 0, 6, 5]} -{"sent_id": [3, 0, 5, 1, 11, 10]} -{"sent_id": [0, 1, 2, 4, 16, 8]} -{"sent_id": [1, 7, 8, 2, 4, 3]} -{"sent_id": [1, 0, 19, 7, 9, 4]} -{"sent_id": [1, 0, 2, 10, 8, 9]} -{"sent_id": [3, 2, 4, 0, 14, 18]} -{"sent_id": [3, 2, 4, 1, 6, 14]} -{"sent_id": [2, 1, 6, 0, 8, 10]} -{"sent_id": [2, 5, 1, 8, 6, 7]} -{"sent_id": [3, 8, 7, 4, 1, 5]} -{"sent_id": [0, 2, 1, 3, 4, 5]} -{"sent_id": [1, 2, 9, 0, 8, 3]} -{"sent_id": [3, 11, 7, 12, 6, 1]} -{"sent_id": [14, 2, 18, 9, 3, 8]} -{"sent_id": [3, 1, 2, 10, 9, 4]} -{"sent_id": [2, 4, 6, 3, 5, 0]} -{"sent_id": [3, 0, 1, 4, 2, 8]} -{"sent_id": [2, 1, 5, 6, 8, 12]} -{"sent_id": [1, 17, 2, 20, 4, 3]} -{"sent_id": [0, 1, 5, 4, 3, 14]} -{"sent_id": [4, 0, 12, 1, 8, 15]} -{"sent_id": [2, 1, 12, 11, 7, 5]} -{"sent_id": [7, 3, 0, 8, 4, 5]} -{"sent_id": [0, 2, 5, 3, 4, 1]} -{"sent_id": [1, 2, 5, 7, 0, 6]} -{"sent_id": [3, 1, 2, 4, 5, 14]} -{"sent_id": [5, 2, 1, 3, 7, 4]} -{"sent_id": [3, 9, 5, 6, 11, 2]} -{"sent_id": [1, 2, 3, 7, 9, 8]} -{"sent_id": [4, 6, 5, 3, 16, 1]} -{"sent_id": [20, 1, 5, 3, 6, 2]} -{"sent_id": [0, 12, 9, 1, 5, 4]} -{"sent_id": [8, 3, 4, 2, 1, 0]} -{"sent_id": [6, 3, 4, 0, 5, 2]} -{"sent_id": [0, 1, 8, 2, 4, 9]} -{"sent_id": [1, 2, 7, 5, 8, 4]} -{"sent_id": [3, 4, 13, 0, 8, 11]} -{"sent_id": [3, 1, 4, 0, 2, 7]} -{"sent_id": [0, 4, 10, 1, 2, 8]} -{"sent_id": [3, 2, 4, 13, 0, 11]} -{"sent_id": [0, 15, 3, 1, 4, 2]} -{"sent_id": [1, 3, 2, 11, 16, 4]} -{"sent_id": [1, 2, 7, 6, 4, 0]} -{"sent_id": [2, 1, 4, 7, 5, 6]} -{"sent_id": [0, 11, 4, 9, 2, 6]} -{"sent_id": [1, 2, 8, 4, 9, 0]} -{"sent_id": [1, 3, 2, 11, 12, 0]} -{"sent_id": [5, 6, 7, 10, 20, 8]} -{"sent_id": [4, 1, 2, 0, 3, 12]} -{"sent_id": [2, 3, 6, 4, 8, 0]} -{"sent_id": [15, 8, 11, 0, 2, 19]} -{"sent_id": [3, 1, 2, 13, 0, 15]} -{"sent_id": [8, 0, 3, 1, 4, 5]} -{"sent_id": [4, 1, 3, 0, 7, 14]} -{"sent_id": [0, 1, 5, 4, 3, 2]} -{"sent_id": [3, 2, 1, 9, 4, 0]} -{"sent_id": [1, 2, 3, 4, 6, 0]} -{"sent_id": [7, 0, 11, 16, 3, 10]} -{"sent_id": [2, 4, 3, 0, 5, 14]} -{"sent_id": [3, 1, 0, 14, 7, 15]} -{"sent_id": [0, 3, 1, 2, 4, 11]} -{"sent_id": [3, 2, 6, 1, 4, 7]} -{"sent_id": [8, 1, 2, 0, 3, 7]} -{"sent_id": [3, 1, 5, 2, 6, 0]} -{"sent_id": [0, 4, 3, 1, 2, 7]} -{"sent_id": [1, 3, 0, 11, 2, 9]} -{"sent_id": [6, 5, 7, 0, 14, 4]} -{"sent_id": [1, 0, 2, 11, 10, 13]} -{"sent_id": [2, 1, 0, 5, 6, 7]} -{"sent_id": [7, 2, 4, 0, 1, 3]} -{"sent_id": [2, 14, 0, 1, 5, 3]} -{"sent_id": [3, 2, 1, 4, 9, 0]} -{"sent_id": [0, 2, 1, 3, 6, 7]} -{"sent_id": [11, 0, 4, 3, 2, 1]} -{"sent_id": [2, 1, 3, 5, 4, 11]} -{"sent_id": [0, 2, 3, 8, 1, 9]} -{"sent_id": [3, 12, 2, 1, 0, 7]} -{"sent_id": [5, 0, 14, 4, 1, 7]} -{"sent_id": [1, 9, 3, 2, 5, 8]} -{"sent_id": [7, 9, 3, 13, 1, 5]} -{"sent_id": [6, 14, 3, 0, 2, 1]} -{"sent_id": [1, 2, 3, 5, 0, 9]} -{"sent_id": [1, 2, 5, 4, 6, 0]} -{"sent_id": [1, 3, 13, 7, 4, 0]} -{"sent_id": [0, 10, 3, 1, 8, 15]} -{"sent_id": [2, 1, 4, 7, 6, 5]} -{"sent_id": [0, 3, 10, 6, 1, 15]} -{"sent_id": [3, 2, 11, 0, 6, 7]} -{"sent_id": [3, 5, 0, 1, 2, 14]} -{"sent_id": [1, 4, 2, 8, 13, 0]} -{"sent_id": [3, 4, 0, 1, 9, 8]} -{"sent_id": [1, 3, 2, 4, 11, 10]} -{"sent_id": [3, 2, 11, 6, 12, 8]} -{"sent_id": [4, 1, 2, 6, 3, 5]} -{"sent_id": [1, 2, 6, 5, 7, 0]} -{"sent_id": [1, 11, 12, 2, 3, 15]} -{"sent_id": [1, 2, 3, 5, 0, 10]} -{"sent_id": [4, 0, 14, 7, 5, 1]} -{"sent_id": [1, 0, 8, 2, 4, 6]} -{"sent_id": [1, 2, 0, 4, 6, 12]} -{"sent_id": [2, 1, 3, 0, 6, 12]} -{"sent_id": [2, 1, 9, 3, 7, 6]} -{"sent_id": [0, 2, 5, 1, 3, 6]} -{"sent_id": [0, 10, 1, 3, 2, 4]} -{"sent_id": [3, 4, 2, 8, 0, 9]} -{"sent_id": [1, 2, 7, 8, 3, 9]} -{"sent_id": [0, 14, 13, 2, 3, 1]} -{"sent_id": [7, 5, 0, 13, 12, 3]} -{"sent_id": [2, 4, 3, 6, 13, 8]} -{"sent_id": [12, 2, 0, 8, 10, 7]} -{"sent_id": [3, 12, 2, 13, 1, 0]} -{"sent_id": [4, 5, 3, 0, 1, 8]} -{"sent_id": [8, 3, 2, 1, 4, 9]} -{"sent_id": [1, 3, 2, 5, 12, 0]} -{"sent_id": [0, 6, 2, 1, 4, 7]} -{"sent_id": [1, 0, 13, 12, 2, 4]} -{"sent_id": [1, 3, 4, 2, 5, 8]} -{"sent_id": [0, 3, 6, 1, 4, 8]} -{"sent_id": [3, 2, 6, 7, 9, 5]} -{"sent_id": [3, 10, 1, 8, 4, 6]} -{"sent_id": [0, 2, 4, 3, 5, 7]} -{"sent_id": [1, 2, 9, 10, 5, 7]} -{"sent_id": [3, 2, 6, 4, 7, 15]} -{"sent_id": [3, 1, 6, 2, 5, 0]} -{"sent_id": [3, 0, 1, 7, 9, 17]} -{"sent_id": [0, 1, 4, 3, 2, 10]} -{"sent_id": [0, 4, 8, 1, 5, 2]} -{"sent_id": [0, 2, 1, 4, 8, 7]} -{"sent_id": [2, 1, 3, 9, 5, 4]} -{"sent_id": [12, 3, 1, 0, 6, 2]} -{"sent_id": [3, 1, 4, 11, 2, 8]} -{"sent_id": [3, 1, 12, 2, 5, 4]} -{"sent_id": [0, 1, 14, 5, 15, 8]} -{"sent_id": [3, 2, 1, 8, 5, 6]} -{"sent_id": [5, 1, 0, 6, 13, 19]} -{"sent_id": [0, 1, 3, 2, 5, 4]} -{"sent_id": [3, 2, 14, 1, 7, 4]} -{"sent_id": [2, 0, 1, 3, 7, 10]} -{"sent_id": [3, 7, 12, 8, 0, 5]} -{"sent_id": [1, 0, 2, 7, 4, 9]} -{"sent_id": [4, 1, 19, 2, 3, 16]} -{"sent_id": [1, 0, 2, 10, 21, 6]} -{"sent_id": [2, 4, 3, 6, 0, 1]} -{"sent_id": [3, 4, 7, 5, 12, 6]} -{"sent_id": [0, 1, 15, 16, 2, 8]} -{"sent_id": [4, 11, 1, 2, 6, 5]} -{"sent_id": [3, 4, 1, 2, 10, 9]} -{"sent_id": [2, 3, 4, 14, 0, 5]} -{"sent_id": [1, 3, 6, 4, 9, 2]} -{"sent_id": [3, 0, 1, 7, 8, 5]} -{"sent_id": [2, 0, 14, 3, 1, 11]} -{"sent_id": [0, 1, 2, 5, 4, 3]} -{"sent_id": [1, 3, 2, 9, 5, 6]} -{"sent_id": [9, 3, 1, 2, 6, 4]} -{"sent_id": [3, 0, 1, 4, 9, 5]} -{"sent_id": [3, 2, 1, 13, 6, 4]} -{"sent_id": [6, 1, 9, 10, 2, 4]} -{"sent_id": [1, 0, 4, 9, 10, 8]} -{"sent_id": [1, 3, 11, 8, 2, 5]} -{"sent_id": [2, 0, 4, 1, 7, 9]} -{"sent_id": [3, 1, 0, 2, 4, 6]} -{"sent_id": [1, 2, 8, 0, 13, 7]} -{"sent_id": [1, 4, 5, 3, 2, 0]} -{"sent_id": [4, 2, 1, 5, 11, 15]} -{"sent_id": [8, 2, 1, 0, 3, 4]} -{"sent_id": [2, 1, 3, 11, 9, 6]} -{"sent_id": [4, 3, 5, 7, 0, 1]} -{"sent_id": [3, 4, 2, 1, 6, 11]} -{"sent_id": [1, 2, 3, 5, 9, 10]} -{"sent_id": [2, 1, 6, 8, 0, 5]} -{"sent_id": [4, 3, 0, 1, 11, 2]} -{"sent_id": [1, 0, 6, 5, 11, 4]} -{"sent_id": [3, 4, 2, 6, 1, 8]} -{"sent_id": [1, 2, 5, 4, 0, 7]} -{"sent_id": [1, 2, 11, 12, 3, 0]} -{"sent_id": [4, 5, 17, 13, 6, 16]} -{"sent_id": [2, 3, 1, 0, 10, 5]} -{"sent_id": [0, 2, 4, 3, 1, 15]} -{"sent_id": [0, 3, 4, 1, 6, 11]} -{"sent_id": [1, 0, 3, 4, 8, 9]} -{"sent_id": [3, 4, 5, 2, 1, 17]} -{"sent_id": [10, 0, 3, 1, 12, 14]} -{"sent_id": [5, 8, 7, 3, 16, 6]} -{"sent_id": [2, 3, 0, 1, 16, 15]} -{"sent_id": [5, 9, 2, 8, 7, 20]} -{"sent_id": [5, 8, 4, 1, 3, 0]} -{"sent_id": [3, 1, 4, 5, 12, 9]} -{"sent_id": [3, 1, 2, 8, 5, 9]} -{"sent_id": [1, 5, 2, 4, 11, 8]} -{"sent_id": [0, 2, 1, 6, 3, 15]} -{"sent_id": [3, 1, 2, 12, 0, 14]} -{"sent_id": [6, 7, 0, 1, 5, 8]} -{"sent_id": [1, 0, 3, 2, 6, 7]} -{"sent_id": [0, 3, 2, 4, 9, 10]} -{"sent_id": [1, 8, 2, 9, 22, 24]} -{"sent_id": [1, 2, 4, 6, 11, 8]} -{"sent_id": [10, 9, 1, 3, 0, 2]} -{"sent_id": [0, 9, 1, 2, 3, 13]} -{"sent_id": [2, 3, 5, 1, 8, 14]} -{"sent_id": [0, 3, 10, 4, 1, 13]} -{"sent_id": [0, 2, 3, 9, 4, 5]} -{"sent_id": [3, 1, 9, 10, 11, 6]} -{"sent_id": [3, 2, 1, 4, 5, 12]} -{"sent_id": [1, 16, 0, 5, 7, 3]} -{"sent_id": [3, 1, 12, 0, 13, 5]} -{"sent_id": [1, 2, 7, 0, 6, 4]} -{"sent_id": [1, 2, 6, 14, 11, 15]} -{"sent_id": [4, 3, 0, 1, 11, 2]} -{"sent_id": [1, 5, 4, 6, 2, 16]} -{"sent_id": [3, 1, 2, 0, 6, 9]} -{"sent_id": [3, 0, 1, 2, 7, 4]} -{"sent_id": [1, 3, 2, 6, 4, 5]} -{"sent_id": [0, 4, 8, 1, 5, 9]} -{"sent_id": [0, 1, 2, 5, 7, 3]} -{"sent_id": [3, 1, 10, 0, 6, 2]} -{"sent_id": [4, 5, 9, 3, 18, 11]} -{"sent_id": [0, 18, 9, 7, 11, 5]} -{"sent_id": [3, 0, 4, 2, 6, 1]} -{"sent_id": [3, 2, 4, 5, 8, 11]} -{"sent_id": [7, 5, 8, 0, 19, 1]} -{"sent_id": [3, 1, 2, 4, 0, 17]} -{"sent_id": [1, 0, 2, 7, 4, 6]} -{"sent_id": [1, 8, 3, 0, 5, 7]} -{"sent_id": [1, 3, 2, 5, 7, 8]} -{"sent_id": [1, 4, 2, 5, 7, 0]} -{"sent_id": [4, 2, 7, 6, 11, 3]} -{"sent_id": [5, 1, 0, 4, 2, 13]} -{"sent_id": [1, 2, 6, 3, 5, 0]} -{"sent_id": [2, 0, 1, 12, 4, 6]} -{"sent_id": [5, 1, 0, 8, 2, 7]} -{"sent_id": [5, 9, 10, 2, 1, 0]} -{"sent_id": [1, 0, 2, 4, 3, 16]} -{"sent_id": [1, 3, 11, 2, 0, 12]} -{"sent_id": [0, 14, 1, 6, 3, 5]} -{"sent_id": [2, 1, 6, 3, 4, 0]} -{"sent_id": [5, 1, 0, 12, 8, 6]} -{"sent_id": [1, 2, 0, 7, 6, 8]} -{"sent_id": [0, 9, 10, 4, 2, 3]} -{"sent_id": [1, 8, 2, 5, 7, 0]} -{"sent_id": [3, 4, 2, 10, 1, 13]} -{"sent_id": [2, 3, 1, 7, 11, 0]} -{"sent_id": [1, 6, 4, 2, 5, 7]} -{"sent_id": [2, 6, 1, 5, 4, 3]} -{"sent_id": [15, 16, 0, 2, 3, 1]} -{"sent_id": [4, 12, 11, 0, 1, 3]} -{"sent_id": [5, 3, 4, 12, 6, 0]} -{"sent_id": [3, 4, 1, 7, 10, 5]} -{"sent_id": [0, 1, 2, 5, 4, 6]} -{"sent_id": [1, 0, 12, 4, 8, 13]} -{"sent_id": [2, 0, 1, 5, 3, 4]} -{"sent_id": [0, 16, 9, 10, 14, 17]} -{"sent_id": [3, 4, 2, 1, 9, 0]} -{"sent_id": [2, 1, 3, 0, 4, 7]} -{"sent_id": [3, 0, 10, 2, 1, 14]} -{"sent_id": [1, 5, 6, 2, 15, 0]} -{"sent_id": [1, 8, 9, 3, 0, 6]} -{"sent_id": [1, 0, 2, 6, 3, 5]} -{"sent_id": [2, 3, 12, 1, 13, 4]} -{"sent_id": [1, 3, 0, 7, 12, 11]} -{"sent_id": [0, 7, 2, 11, 1, 10]} -{"sent_id": [3, 1, 4, 2, 6, 9]} -{"sent_id": [4, 2, 0, 6, 1, 3]} -{"sent_id": [3, 1, 12, 10, 4, 2]} -{"sent_id": [4, 10, 5, 1, 9, 0]} -{"sent_id": [4, 0, 1, 5, 16, 15]} -{"sent_id": [3, 1, 0, 2, 4, 12]} -{"sent_id": [1, 10, 2, 4, 11, 8]} -{"sent_id": [4, 0, 3, 2, 1, 5]} -{"sent_id": [4, 2, 3, 1, 7, 6]} -{"sent_id": [1, 8, 2, 0, 7, 6]} -{"sent_id": [3, 0, 9, 2, 1, 10]} -{"sent_id": [3, 5, 11, 1, 0, 2]} -{"sent_id": [1, 3, 6, 9, 2, 15]} -{"sent_id": [3, 4, 1, 6, 10, 2]} -{"sent_id": [1, 11, 7, 0, 3, 2]} -{"sent_id": [6, 1, 0, 5, 4, 2]} -{"sent_id": [3, 0, 4, 1, 2, 5]} -{"sent_id": [2, 0, 5, 9, 4, 17]} -{"sent_id": [9, 1, 0, 10, 2, 3]} -{"sent_id": [1, 0, 2, 10, 3, 18]} -{"sent_id": [3, 2, 9, 5, 8, 4]} -{"sent_id": [4, 3, 2, 5, 9, 13]} -{"sent_id": [1, 3, 11, 2, 0, 4]} -{"sent_id": [2, 1, 3, 15, 8, 5]} -{"sent_id": [0, 3, 4, 5, 2, 7]} -{"sent_id": [9, 1, 13, 14, 2, 3]} -{"sent_id": [0, 12, 2, 11, 3, 1]} -{"sent_id": [2, 11, 7, 4, 5, 16]} -{"sent_id": [0, 4, 10, 3, 13, 1]} -{"sent_id": [1, 0, 6, 9, 4, 5]} -{"sent_id": [1, 4, 0, 2, 5, 3]} -{"sent_id": [4, 6, 2, 5, 7, 1]} -{"sent_id": [3, 2, 1, 7, 4, 11]} -{"sent_id": [1, 7, 0, 5, 6, 2]} -{"sent_id": [1, 3, 2, 7, 14, 0]} -{"sent_id": [5, 16, 0, 17, 14, 2]} -{"sent_id": [1, 0, 2, 6, 10, 3]} -{"sent_id": [2, 7, 3, 1, 4, 15]} -{"sent_id": [0, 1, 2, 3, 8, 9]} -{"sent_id": [1, 2, 4, 3, 16, 0]} -{"sent_id": [0, 2, 8, 1, 12, 15]} -{"sent_id": [4, 3, 15, 1, 16, 12]} -{"sent_id": [0, 5, 11, 1, 6, 2]} -{"sent_id": [2, 3, 1, 0, 4, 5]} -{"sent_id": [1, 2, 19, 15, 3, 4]} -{"sent_id": [0, 3, 4, 7, 1, 11]} -{"sent_id": [2, 3, 7, 6, 8, 13]} -{"sent_id": [1, 4, 5, 0, 10, 6]} -{"sent_id": [4, 3, 8, 5, 1, 0]} -{"sent_id": [4, 2, 9, 3, 7, 8]} -{"sent_id": [1, 2, 12, 4, 5, 6]} -{"sent_id": [1, 4, 3, 6, 0, 9]} -{"sent_id": [2, 0, 3, 4, 1, 8]} -{"sent_id": [1, 9, 7, 2, 15, 0]} -{"sent_id": [1, 4, 2, 3, 6, 8]} -{"sent_id": [7, 8, 15, 10, 12, 9]} -{"sent_id": [2, 0, 1, 4, 3, 6]} -{"sent_id": [5, 1, 4, 11, 6, 10]} -{"sent_id": [3, 0, 10, 1, 2, 5]} -{"sent_id": [3, 1, 7, 13, 2, 4]} -{"sent_id": [2, 3, 0, 6, 5, 1]} -{"sent_id": [2, 1, 3, 5, 7, 8]} -{"sent_id": [2, 3, 1, 0, 4, 7]} -{"sent_id": [3, 6, 8, 7, 9, 2]} -{"sent_id": [4, 0, 3, 1, 13, 2]} -{"sent_id": [1, 2, 3, 6, 11, 5]} -{"sent_id": [3, 5, 0, 2, 4, 8]} -{"sent_id": [2, 4, 5, 3, 0, 1]} -{"sent_id": [8, 3, 13, 2, 7, 10]} -{"sent_id": [1, 3, 2, 0, 10, 13]} -{"sent_id": [3, 6, 2, 4, 11, 5]} -{"sent_id": [3, 4, 13, 0, 11, 2]} -{"sent_id": [0, 3, 4, 11, 2, 7]} -{"sent_id": [3, 2, 13, 0, 1, 7]} -{"sent_id": [3, 0, 14, 1, 5, 4]} -{"sent_id": [1, 5, 2, 0, 4, 3]} diff --git a/MatchSum/train_matching.py b/MatchSum/train_matching.py deleted file mode 100644 index be85fb6..0000000 --- a/MatchSum/train_matching.py +++ /dev/null @@ -1,153 +0,0 @@ -import sys -import argparse -import os -import json -import torch -from time import time -from datetime import timedelta -from os.path import join, exists -from torch.optim import Adam - -from utils import read_jsonl, get_data_path, get_result_path - -from dataloader import MatchSumPipe -from model import MatchSum -from metrics import MarginRankingLoss, ValidMetric, MatchRougeMetric -from callback import MyCallback -from fastNLP.core.trainer import Trainer -from fastNLP.core.tester import Tester -from fastNLP.core.callback import SaveModelCallback - -def configure_training(args): - devices = [int(gpu) for gpu in args.gpus.split(',')] - params = {} - params['encoder'] = args.encoder - params['candidate_num'] = args.candidate_num - params['batch_size'] = args.batch_size - params['accum_count'] = args.accum_count - params['max_lr'] = args.max_lr - params['margin'] = args.margin - params['warmup_steps'] = args.warmup_steps - params['n_epochs'] = args.n_epochs - params['valid_steps'] = args.valid_steps - return devices, params - -def train_model(args): - - # check if the data_path and save_path exists - data_paths = get_data_path(args.mode, args.encoder) - for name in data_paths: - assert exists(data_paths[name]) - if not exists(args.save_path): - os.makedirs(args.save_path) - - # load summarization datasets - datasets = MatchSumPipe(args.candidate_num, args.encoder).process_from_file(data_paths) - print('Information of dataset is:') - print(datasets) - train_set = datasets.datasets['train'] - valid_set = datasets.datasets['val'] - - # configure training - devices, train_params = configure_training(args) - with open(join(args.save_path, 'params.json'), 'w') as f: - json.dump(train_params, f, indent=4) - print('Devices is:') - print(devices) - - # configure model - model = MatchSum(args.candidate_num, args.encoder) - optimizer = Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0) - - callbacks = [MyCallback(args), - SaveModelCallback(save_dir=args.save_path, top=5)] - - criterion = MarginRankingLoss(args.margin) - val_metric = [ValidMetric(save_path=args.save_path, data=read_jsonl(data_paths['val']))] - - assert args.batch_size % len(devices) == 0 - - trainer = Trainer(train_data=train_set, model=model, optimizer=optimizer, - loss=criterion, batch_size=args.batch_size, - update_every=args.accum_count, n_epochs=args.n_epochs, - print_every=10, dev_data=valid_set, metrics=val_metric, - metric_key='ROUGE', validate_every=args.valid_steps, - save_path=args.save_path, device=devices, callbacks=callbacks) - - print('Start training with the following hyper-parameters:') - print(train_params) - trainer.train() - - -def test_model(args): - - models = os.listdir(args.save_path) - - # load dataset - data_paths = get_data_path(args.mode, args.encoder) - datasets = MatchSumPipe(args.candidate_num, args.encoder).process_from_file(data_paths) - print('Information of dataset is:') - print(datasets) - test_set = datasets.datasets['test'] - - # need 1 gpu for testing - device = int(args.gpus) - - args.batch_size = 1 - - for cur_model in models: - - print('Current model is {}'.format(cur_model)) - - # load model - model = torch.load(join(args.save_path, cur_model)) - - # configure testing - dec_path, ref_path = get_result_path(args.save_path, cur_model) - test_metric = MatchRougeMetric(data=read_jsonl(data_paths['test']), dec_path=dec_path, - ref_path=ref_path, n_total = len(test_set)) - tester = Tester(data=test_set, model=model, metrics=[test_metric], - batch_size=args.batch_size, device=device, use_tqdm=False) - tester.test() - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='training/testing of MatchSum' - ) - parser.add_argument('--mode', required=True, - help='training or testing of MatchSum', type=str) - - parser.add_argument('--save_path', required=True, - help='root of the model', type=str) - # example for gpus input: '0,1,2,3' - parser.add_argument('--gpus', required=True, - help='available gpus for training(separated by commas)', type=str) - parser.add_argument('--encoder', required=True, - help='the encoder for matchsum (bert/roberta)', type=str) - - parser.add_argument('--batch_size', default=16, - help='the training batch size', type=int) - parser.add_argument('--accum_count', default=2, - help='number of updates steps to accumulate before performing a backward/update pass', type=int) - parser.add_argument('--candidate_num', default=20, - help='number of candidates summaries', type=int) - parser.add_argument('--max_lr', default=2e-5, - help='max learning rate for warm up', type=float) - parser.add_argument('--margin', default=0.01, - help='parameter for MarginRankingLoss', type=float) - parser.add_argument('--warmup_steps', default=10000, - help='warm up steps for training', type=int) - parser.add_argument('--n_epochs', default=5, - help='total number of training epochs', type=int) - parser.add_argument('--valid_steps', default=1000, - help='number of update steps for validation and saving checkpoint', type=int) - - args = parser.parse_known_args()[0] - - if args.mode == 'train': - print('Training process of MatchSum !!!') - train_model(args) - else: - print('Testing process of MatchSum !!!') - test_model(args) - diff --git a/MatchSum/utils.py b/MatchSum/utils.py deleted file mode 100644 index ba3d6b8..0000000 --- a/MatchSum/utils.py +++ /dev/null @@ -1,32 +0,0 @@ -import os -from os.path import exists, join -import json - -def read_jsonl(path): - data = [] - with open(path) as f: - for line in f: - data.append(json.loads(line)) - return data - -def get_data_path(mode, encoder): - paths = {} - if mode == 'train': - paths['train'] = 'data/train_CNNDM_' + encoder + '.jsonl' - paths['val'] = 'data/val_CNNDM_' + encoder + '.jsonl' - else: - paths['test'] = 'data/test_CNNDM_' + encoder + '.jsonl' - return paths - -def get_result_path(save_path, cur_model): - result_path = join(save_path, '../result') - if not exists(result_path): - os.makedirs(result_path) - model_path = join(result_path, cur_model) - if not exists(model_path): - os.makedirs(model_path) - dec_path = join(model_path, 'dec') - ref_path = join(model_path, 'ref') - os.makedirs(dec_path) - os.makedirs(ref_path) - return dec_path, ref_path -- Gitee From be9d139f308bf0d4bb97cbd9715c3c323637bfcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=80=A1=E7=84=B6?= <845465009@qq.com> Date: Thu, 17 Dec 2020 15:13:44 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20Poin?= =?UTF-8?q?terGen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PointerGen/README.md | 4 - .../__pycache__/config.cpython-37.pyc | Bin 1617 -> 0 bytes .../data_util/__pycache__/data.cpython-37.pyc | Bin 6437 -> 0 bytes .../__pycache__/logging.cpython-37.pyc | Bin 481 -> 0 bytes .../__pycache__/utils.cpython-37.pyc | Bin 4925 -> 0 bytes PointerGen/data_util/config.py | 46 -- PointerGen/data_util/data.py | 381 ------------ PointerGen/data_util/logging.py | 14 - PointerGen/data_util/utils.py | 206 ------- PointerGen/decode.py | 184 ------ .../model/__pycache__/loss.cpython-37.pyc | Bin 1806 -> 0 bytes .../model/__pycache__/metric.cpython-37.pyc | Bin 3976 -> 0 bytes .../model/__pycache__/model.cpython-37.pyc | Bin 13883 -> 0 bytes PointerGen/model/loss.py | 62 -- PointerGen/model/metric.py | 155 ----- PointerGen/model/model.bak.py | 546 ----------------- PointerGen/model/model.py | 558 ------------------ PointerGen/model/mq | 0 PointerGen/train.py | 170 ------ .../__pycache__/callback.cpython-37.pyc | Bin 4375 -> 0 bytes PointerGen/training_ptr_gen/callback.py | 165 ------ PointerGen/training_ptr_gen/main.py | 126 ---- 22 files changed, 2617 deletions(-) delete mode 100644 PointerGen/README.md delete mode 100644 PointerGen/data_util/__pycache__/config.cpython-37.pyc delete mode 100644 PointerGen/data_util/__pycache__/data.cpython-37.pyc delete mode 100644 PointerGen/data_util/__pycache__/logging.cpython-37.pyc delete mode 100644 PointerGen/data_util/__pycache__/utils.cpython-37.pyc delete mode 100644 PointerGen/data_util/config.py delete mode 100644 PointerGen/data_util/data.py delete mode 100644 PointerGen/data_util/logging.py delete mode 100644 PointerGen/data_util/utils.py delete mode 100644 PointerGen/decode.py delete mode 100644 PointerGen/model/__pycache__/loss.cpython-37.pyc delete mode 100644 PointerGen/model/__pycache__/metric.cpython-37.pyc delete mode 100644 PointerGen/model/__pycache__/model.cpython-37.pyc delete mode 100644 PointerGen/model/loss.py delete mode 100644 PointerGen/model/metric.py delete mode 100644 PointerGen/model/model.bak.py delete mode 100644 PointerGen/model/model.py delete mode 100644 PointerGen/model/mq delete mode 100644 PointerGen/train.py delete mode 100644 PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc delete mode 100644 PointerGen/training_ptr_gen/callback.py delete mode 100644 PointerGen/training_ptr_gen/main.py diff --git a/PointerGen/README.md b/PointerGen/README.md deleted file mode 100644 index fcac06c..0000000 --- a/PointerGen/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# pointer-gen-fastnlp - -fastNLP实现的Get To The Point Summarization with Pointer-Generator Networks论文模型 -论文地址: https://arxiv.org/abs/1704.04368 diff --git a/PointerGen/data_util/__pycache__/config.cpython-37.pyc b/PointerGen/data_util/__pycache__/config.cpython-37.pyc deleted file mode 100644 index 250f0a3af9114598bc0abd33c0ffce2d0c90cefd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1617 zcmbu9yN}#N7{JH&K78KWy=NXAcS(S1i#-=eNJt4AaR*m%LIMfN5*p346x8#IUfHIbU`@Ltz^XP{twS@ozPDUbfK)?m>jDYvRjT~@3A;Z=j{p2tfvAwaG{54jG@$PMTt zH(`Lh1S`nPu!_6_Ysjmxj(iO^kXx{ceBE*zE}^^wmyy?Owd>Y?1FoRu4IsGdtB13V zQ1ZOcd^9a`9-hj0%Ej!%ml(r+rkUbeg?opG`yYjqRHSOkflktlD=PTi#<8m88v9F8>P^PMFdnD@T%N{DcV|sw&T!OlM4|g$QFIM!?eS zG)Mevli^7bv!mI&|EW-ZIx2-8Vf8R8lIGjYO;^qDV>8WfAkuG)3Pv@ZHh;_5K7L9_ z^0pmM$H@g8PHskiE=hC0!WbOCS*N?uxbL%|% zY&?9kZmX)~Qo0yg`;_9TX-Xqs7KNse%6i3~7X>_BS~5MY2l!dC3;HVXxBz~^;uflI z+1S=`k%~I7-=)d+akJDEuY;zrjSF(DklBbRn5F<+;N*GK<@u2j>fng!cuG||<553n zUs5h&sx&WEqv9IQ)ukiO@rGE9xy&1AjGfF+Vavu75^(Yj;;XeH7~W6N0* zZD?8HT%wS9V^kWNIc=`7N4*laskx*H7j-XHG%ilKWC@RYDABA?ir&?chs&*fL3vrk zQx$b9#c5JjbuW|uWDK3UrFb^M-z7@pjA1JMk^J@9%bNWEHkv)eN@L^3_A=WoPo=q8 z+xV)R2;vN!j%yz$aC~Ro={Ow^-xrVZF0@86MC)v&xgmEKO*Cwqh7v62l-2>Ic*a#` z!g>p9SaPi-HHytLmrLsGP~D2kGp zd(XLZf1EjU?svXBZ%P+t{S#4_qv#EMu&{i;|K zS5dzvUJ>i$)SETx-~RzZlN?kxp!xK7u842_jiZ(C-)!R`S8K+(1LLH-fl-F^YEiu z$Mp`bXca}QBucEFYO)qG%*;^#E*#4(~zXhQ#56UG;6YA1>?4>b9mL`^hdeXXTVP=u@to8(v( z&MD$FRuirhd!!}KnVJ@k-%1Kk^^tL=Y%9Cpf2^g&bS{~DYKnp=ex`^yQTjqt6>ceW ziK6t3aR$_|EsuJ6=Bj&%*(^67;TA=xaxkmO?d2DG^jOWgTJ*bkUM!xfpQ=e=R8304JcA`)YRAU8#b2ts|H(F&_mtVcSo+#d zE62Z1%6O{3P3Mz&F}J3qRn!{lg?J&UCJUHnkt|KDQ{%CnE~ZOqExnR1rz`1dQW3Q^ zWwewmvgH+Vg|(%zw#-^>tgWziWvs2TwmjC>SX&uuS6N#n?MwCWd+=dxbVa<96jv1S z>I$M2zCla83@@++=WVd%QX4F~)CRjQwZXbeZLl$KW1GvP6;aD= zA^#_&Ux5xwrus5;STWUCpu>WxPTs`oQ+*9OR-Wotp<~stzA9>jU1F6G>kJ5rHP?V* zYeG8%zQS+TLnSF-Pp>yK^LZ#mlr6TOM6qml;uc|zhy5J^qm0-)jx#&ooV39$-r!MY zqHix~041=eGF^Dj#=f8bJv*9OuXw58V~xOgwD*~3g_Mk09FWAfMqu?M2pW~U`;<;s#@OilOjIsd_ zsC!a|a${qoVP`g8Q_J^)tUy997#zh}L3k6Q)*%pcRJCqHK9OsD+p8 z1){~P$aOOIbt>vqY*2BHiZ`hE4vOKm>-4+m@_ILvb@G4Y#r2`deb`lvtCF0WnFHAi zV&n~Eyv!N*L@f1UuOA_a3W@Y5B=G}+QTy;xb8TR=tW0g#Y z^Rf!3w$}E}J9oF=YyL@ArVMwk+Q<+T z9{E1p*$p#`T@qy$Y=eg+WsuC^TROIjTfq8x9OV=7J8+9MXYTyQT4wY^;brr@Vc782 zpdIgnrg+b0)Cz5zb3H5OubjG0WQv!}Lh|eO_P~1JXmTW|gGs$2mpw|cpXmqQiR(N6@SJV=ulD4X9Gk-@bqOYS}(<IV6CBla|dcUKUYt?|C*xB^BWGKG!^Efx5*#QzFBS5xI}v`xLS1cfjPlt+nvgW`oU z0(}5=F<8`P4Wx2B=Tj5j_;F&v1CZGt<9n(7xzbgMI(_CO);1Dd>Ii*g zB{UC`7d!Xv0f;r8t%=f)p#x` zzEG0tsSdJXgKEraR=I8u%Sz~}|SJ4OQ3Hh++*&jIZ}!LajJ@@?@Zk>n$!5(9^jUnFLt zAK3DCqT`r>JD_kn4rA2EPPCDRodXh^*g4@nT&1?eqJD>~pu|R^gY*KO zB|2l2-ppCWBrY0e9uoAt3|q*^6#g6%4M%=J?ez9Q#zf>A%pNSz6?mLOFjIT3jn-Ch z)W47#c;E;qpETw~%M>o;befllO7^8u^5UrhkG!-Z=h8 z_Q9`HzCFe<>yMEJyI^Wz^7&&xrfEE zPmShq5^}?Y+1Fcj;zoXbAVYD~@kG5{r#)YPZ@V7vx8r&*3jPpf0L`njJNb*qX8pl_ zFRDlT;gK)uK^WKfnV(V5Ct#m`FYxN$4Z`{urLF^|JlT#z+293-IrqD?`ef}ld-do0 zz0Q8U6H4htgD?hgkG#C~hv?LBT)QXu)5c7EQJUwd8t*sHou7at?Yqk{md%GpG0p?n zus0Y+Z&17uwa?>C1EN*6Dt4ZRtIF)_M`)7|(PNsLh)ET3aoi;kgqo^^WXHkDyWkA; z8A3hNfNCTIUxWrk(!iY%VKE{GyAH93U58zT7Cv|<2Js2nc@LGtA|lR2!~u~~6R~O} zU{M0{FHMTA!{Q@c6kU8iWZe1&PXbaUX*+`Z?=&CmG~d~2@gX29P4%7T_6!mGC?E4@ zs9e2sBwdq^xkwy&D#9l$Isgsi$LMfjyPhYT8$4!*JW0pi9L|ZDTx{Upqj0sLd9a^o{n^CKUgm(wSUg8m2Rv=90uZ$Py4pWMc=()!{ zX9Iihc?%)PN6FvEaT>-{0ko)BIGZiy#$ogwEI`MGflS?qPfEj1h9E55(CNiF;XtM4B(H1tI2`TIC=aj z=)Ml+N^SyiVMexu`j`tD1*D?OZp~}`w~e= ztKg7U<*N!AzHQ-d<636Z*V^U>_awc2cX_OB_QFj<+g5%Gl@#dsbdh((O-a$u2Y)`( zyXC--4>l(svH81+YwY>q6W0W97@WuwO<*Awjykcsf-e$LD7$|6d=oJ2ZH_@!5;Mpa z_ykK|g*WNTH%KHO&E?N&NtcQS70hU+OqV|h^HEXWrn^M+n00WnW#r@S%OS-ynl>VK6R}!u-OoTP2F7`f>#s8BNVs3?F4k69aUP6a}Z-z z<~hjapw}mAq6-eOI_dQVX@J2yuzkcqDUw@B9GQ0gvJiRJZD24Xf-;cG1UcxtO5@xG}+XDLK&^qzR^bjI8Xh5E4q8Rv$=4cB75^ zc}gYlQbRH;Iiw3YnSn?(QEw`p5~T&J5(#!CB6O^q_3I}whY5Qok$Jw=c( diff --git a/PointerGen/data_util/__pycache__/utils.cpython-37.pyc b/PointerGen/data_util/__pycache__/utils.cpython-37.pyc deleted file mode 100644 index 0a2bf6ea9ffa02a479a652cd45fc5ef594103a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4925 zcmd5=&2JmW72jFzlFM&WqQ0CqVLp_YDI_HZ(zJ%_M6nq=ttC5>9LG%D^_sJyC@**E z*`;kUOB9H6ZIj+}kbo9NFFExu=%If>Pjf3;pa@W)hZa5P)Zd$>XjwLj9Lv@I=Iia- z+4tuC-i+QW7IPYYzy00WTaCJ={goO=zbq>6;tu}=;2LM1)=Em&VydmTbXBHW2G@D& z3$11H?{Sl-zhJF2&u|Mp8J^`il$Mgrwz5xX%C&N;op0q;S!fkhS!|V1=Dl*S(yFlJ zt<_f5t?p0p!U021k(YRxS9q0A@o8MOudUWJpW(B3SB-z4&+`S$VunA@Px0qao8@d% zYrOC+zC~Mar>MY>O1dxL4$lB0eCH$RN2$l!BVE-}F&o#6SRdDv6xX2BT$kFgu)4AJ z!G$Z$v-SF7IGovNzTezvu3u=@H?Oa)t!~^rtGX{W*P9!wTg{8dyBkcJebM!!MoMNJ z5p~<1D=p_v7zw8x!4Pgc;4Zg=LDU~azt=<>^E~`$MYz2na+h|3p1ZOq+B>el5;@`B zaAn&GBj4*U3Dme9Gvoyf5VQP*1`2$%bNvZ$tF z3pX5iQAn#pfyOMBQHM`4ctar zrg~jp>e05$Y%2TgNmC8Ul*75q1MI|bdyR}VNM);X@+Gn~7O@|QZsZDSgpu2qrh0eF zqK8OH%fbX~-|4x^c?pok9C=}Q~NqMxcLQquxsw8544NgBX)p`X*UpMA8H%g z$6A!(u>73HGjkZF=!3sn3M0@& z%x1M;>-P+(U_)~;Ji8dG&xcp^xNM~==IOPOd3gjS{v4rr8%C( zIWK_i!t=|Ig@?1`1uTMkB2$loI`4}5FkRt$1X!~z-1}8EJZ=_<<`h}cqL~0207{0yPxVK6M+Huy{*BS1_cB+=d>stryr5C z(sLTQ5fYhM=tbzACMj-F@4eGEo^)__;@DggO2f*=)$5mD2>sPkO$6^5!6vO~S z{cQb^)xRZkh*Q+DaAar@j8{*{;>gD0c@iUQi8{fH1g{Xh1du84T4LCY%qQGtD~IGs z*O+*u*$xJNB(vLHL@W)9SJlIJ-91qyT||Njs5qKZ9<-0C2+8u}ATpFUrVv7>;FWnM z-oO~~?nW@^xZMgw583HM){yKo$wr6llS6jvkiFEfhUStd?ku4YN#V7VR#JFj(xO7Y zeS4_C_Sz&UC^(26Rcul)N7_E(GRc&&c923y80*7^dO@u8$4jIhb%mrHb;8@X;}e=E z;Z_=Jjy2-Y17b(Ejzw#3G}l(I$yCRUq}dU{ppOq`Cu2=o=RBu(hdbw+(DN_c+HejD z$ng+BGO~go<_TeD zOFtS;KNddyDgQx3$=4G3Pga*&x0YZ2;Nr_FlT{HK9oK%-?hCiw4Y5O#rK2wNIG!iV zN9}DpYzGK|@iS+he&!4a?D#Wh>=Vy;Pd`JXcl;Ue=$XcXw6H~Uqizpj=LZj@1@hdc z<_VIOY4;&gW(aHT&{j^SMK2OA_K`j3u8SNP%9MvhS6U527hBB0Zwe6zX$r^hxGGK) zo>ml{hLvGjnd$GTFPGK^+33x;-jcb*8_1JFW_x6RRh=7m6J66bhbSA{Az#iWGEeo_ zkW%ksCbr{q#o7aWrz|CVTssO>B5qV=c4x02+O!>zIYA2`shimRI(?aeO}5B5g=;re z`m#5!Ufq)U&6}HB%{BYl>egkMTf2I(c_pc{uFM~ssmwi|9ZW&$r9m%Dk_{6wolHpP z#}lLN0c=c*Alb$oOF`AKwURYrW8qvTD%=2Qtbz`DeSimL)CSRQQz@W2xy%!>ogj9+=^L$sQ=$F>%X61*1tWAS;3codvV0*oK9KQxirOw1*f|uw<)}y(ifP$u3IPlmpQ0W_w?9jdnpIDt#BP0%6O zA?On967&dYliSKFCfeHTyOQmSyVUOy_yhq#pWq(BiEZ%QQygUXaE|Z(072gfp*i(Eep#I_ea5M_+0 z|0SpstvV;EZMk@d2FNXR?!xzw6Q$`7did{z?&EN+a*}wHx>I0tSq)v}y7oX&^7gvD zZX|w8I%xN)cv8^xj+sgsEkn;+=a2ygo_n6Q)8Xp?I%nfbSyrxOWvs%ut$GVENKUs{ KDP and are used in the data files to segment the abstracts into sentences. They don't receive vocab ids. -SENTENCE_START = '' -SENTENCE_END = '' - -PAD_TOKEN = '[PAD]' # This has a vocab id, which is used to pad the encoder input, decoder input and target sequence -UNKNOWN_TOKEN = '[UNK]' # This has a vocab id, which is used to represent out-of-vocabulary words -START_DECODING = '[START]' # This has a vocab id, which is used at the start of every decoder input sequence -STOP_DECODING = '[STOP]' # This has a vocab id, which is used at the end of untruncated target sequences - -# Note: none of , , [PAD], [UNK], [START], [STOP] should appear in the vocab file. - -''' -class Cnn_dailymailLodaer(DataSetLoader): - def __init__(self): - super(Cnn_dailymailLodaer, self).__init__() - - def _load(self, data_path): - def text_generator(example_generator): - _count_1 = 0 - _count_2 = 0 - while True: - try: - e = example_generator.__next__() # e is a tf.Example - except StopIteration: - break - try: - article_text = e.features.feature['article'].bytes_list.value[ - 0] # the article text was saved under the key 'article' in the data files - abstract_text = e.features.feature['abstract'].bytes_list.value[ - 0] # the abstract text was saved under the key 'abstract' in the data files - except ValueError: - logger.error('Failed to get article or abstract from example') - continue - if len(article_text) == 0: # See https://github.com/abisee/pointer-generator/issues/1 - _count_1 += 1 - logger.warning('Found an example with empty article text. Skipping it. Skipping number: %d'%_count_1) - continue - else: - #_count_2 += 1 - #logger.info("getting example: %d"%_count_2) - yield (article_text, abstract_text) - - def example_generator(data_path): - filelist = glob.glob(data_path) # get the list of datafiles - assert filelist, ('Error: Empty filelist at %s' % data_path) # check filelist isn't empty - filelist = sorted(filelist) - - for f in filelist: - reader = open(f, 'rb') - while True: - len_bytes = reader.read(8) - if not len_bytes: break # finished reading this file - str_len = struct.unpack('q', len_bytes)[0] - example_str = struct.unpack('%ds' % str_len, reader.read(str_len))[0] - yield example_pb2.Example.FromString(example_str) - - logger.info("example_generator completed reading all datafiles. No more data.") - - - input_gen = text_generator(example_generator(data_path)) - data_dict = {"article": [], "abstract_sentences": []} - - while True: - try: - (article, - abstract) = input_gen.__next__() # read the next example from file. article and abstract are both strings. - if isinstance(abstract, bytes): - abstract = str(abstract, encoding="utf-8") - if isinstance(article, bytes): - article = str(article, encoding="utf-8") - - except StopIteration: # if there are no more examples: - logger.info("The example generator for this example queue filling thread has exhausted data.") - break - - abstract_sentences = [sent.strip() for sent in abstract2sents( - abstract)] # Use the and tags in abstract to get a list of sentences. - - data_dict["article"].append(article) - data_dict["abstract_sentences"].append(abstract_sentences) - - dataset = DataSet(data_dict) - - return dataset - - def process(self, paths, vocab_path, vocab_size): - def read_vocab(vocab_file, max_size): - word_list = [] - count = 0 - - for w in [UNKNOWN_TOKEN, PAD_TOKEN, START_DECODING, STOP_DECODING]: - word_list.append(w) - count += 1 - - with open(vocab_file, 'r') as vocab_f: - for line in vocab_f: - pieces = line.split() - if len(pieces) != 2: - logger.warning('Warning: incorrectly formatted line in vocabulary file: %s\n' % line) - continue - w = pieces[0] - if w in [SENTENCE_START, SENTENCE_END, UNKNOWN_TOKEN, PAD_TOKEN, START_DECODING, STOP_DECODING]: - raise Exception( - ', , [UNK], [PAD], [START] and [STOP] shouldn\'t be in the vocab file, but %s is' % w) - if w in word_list: - raise Exception('Duplicated word in vocabulary file: %s' % w) - word_list.append(w) - count += 1 - if max_size != 0 and count >= max_size: - logger.info("max_size of vocab was specified as %i; we now have %i words. Stopping reading." % ( - max_size, count)) - break - - logger.info( - "Finished constructing vocabulary of %i total words. Last word added: %s" % (count, word_list[-1])) - return word_list - - vocab = Vocabulary(padding=PAD_TOKEN, unknown=UNKNOWN_TOKEN) - vocab.update(read_vocab(vocab_path, vocab_size)) - datasets = {} - for key, value in paths.items(): - - logger.info("-"*5+"processing dataset " + key+"-"*5) - datasets[key] = self._load(value) - datasets[key].apply(lambda x: ' '.join(x["abstract_sentences"]), new_field_name='abstract') - logger.info("dataset " + key + " size is %d" % len(datasets[key])) - logger.info("-"*5+"process dataset "+key+" done!"+"-"*5) - - return DataBundle(vocabs={"train": vocab}, datasets=datasets) -''' - - -def convert_list_to_ndarray(field): - if isinstance(field, list): - return np.array(field) - return field - - -def prepare_dataInfo(mode, vocab_size, config, train_data_path=None, dev_data_path=None, test_data_path=None): - def sent_to_words(sents): - result = [] - for sent in sents: - result.extend([word.strip() for word in sent.split(" ") if len(word.strip()) != 0]) - return result - - # dataloader = Cnn_dailymailLodaer() - # 适用于输入是json的文件,每个json必须有field :text和summary,二者都是tokenized - dataloader = JsonLoader(fields={"text": "words", "summary": "abstract_sentences"}) - if mode == 'train': - if train_data_path is None or dev_data_path is None: - print("training with no train data path or dev data path! ") - paths = {"train": train_data_path, "dev": dev_data_path} - else: - if test_data_path is None: - print("testing with no test data path ! ") - paths = {"train": train_data_path, "test": test_data_path} - # dataInfo = dataloader.process(paths, vocab_path, vocab_size) - print("=" * 10) - print(paths) - dataInfo = dataloader.load(paths) - for key, _dataset in dataInfo.datasets.items(): - _dataset.apply(lambda ins: " ".join(ins['words']), new_field_name='article') - _dataset.apply(lambda ins: sent_to_words(ins['words']), new_field_name='words') - _dataset.apply(lambda ins: sent_tokenize(" ".join(ins['abstract_sentences'])), - new_field_name='abstract_sentences') - - vocab = Vocabulary(max_size=vocab_size - 2, padding=PAD_TOKEN, unknown=UNKNOWN_TOKEN) - vocab.from_dataset(dataInfo.datasets['train'], field_name='words') - vocab.add(START_DECODING) - vocab.add(STOP_DECODING) - print(vocab.to_word(0)) - print(len(vocab)) - assert vocab_size == len(vocab), "vocab_size error!!!" - dataInfo.set_vocab(vocab, "train") - - for key, dataset in dataInfo.datasets.items(): - data_dict = {"enc_len": [], - "enc_input": [], - "dec_input": [], - "target": [], - "dec_len": [], - "article_oovs": [], - "enc_input_extend_vocab": []} - - for instance in dataset: - article = instance["article"] - abstract_sentences = instance["abstract_sentences"] - - enc_len, enc_input, dec_input, target, dec_len, article_oovs, enc_input_extend_vocab = getting_full_info( - article, abstract_sentences, dataInfo.vocabs['train'], config) - - data_dict["enc_len"].append(enc_len) - data_dict["enc_input"].append(enc_input) - data_dict["dec_input"].append(dec_input) - data_dict["target"].append(target) - data_dict["dec_len"].append(dec_len) - data_dict["article_oovs"].append(article_oovs) - data_dict["enc_input_extend_vocab"].append(enc_input_extend_vocab) - - logger.info("-----prepare_dataInfo for dataset " + key + "-----") - logger.info(str(len(data_dict["enc_len"])) + " " + str(len(data_dict["enc_input"])) + " " + str( - len(data_dict["dec_input"])) + " " + - str(len(data_dict["target"])) + " " + str(len(data_dict["dec_len"])) + " " + str( - len(data_dict["article_oovs"])) + " " + - str(len(data_dict["enc_input_extend_vocab"]))) - dataset.add_field("enc_len", data_dict["enc_len"]) - dataset.add_field("enc_input", data_dict["enc_input"]) - dataset.add_field("dec_input", data_dict["dec_input"]) - dataset.add_field("target", data_dict["target"]) - dataset.add_field("dec_len", data_dict["dec_len"]) - dataset.add_field("article_oovs", data_dict["article_oovs"]) - dataset.add_field("enc_input_extend_vocab", data_dict["enc_input_extend_vocab"]) - - dataset.set_input("enc_len", "enc_input", "dec_input", "dec_len", "article_oovs", "enc_input_extend_vocab") - dataset.set_target("target", "article_oovs", "abstract_sentences") - ''' - for name, dataset in dataInfo.datasets.items(): - for field_name in dataset.get_field_names(): - dataset.apply_field(convert_list_to_ndarray, field_name=field_name, new_field_name=field_name) - ''' - return dataInfo - - -def get_dec_inp_targ_seqs(sequence, max_len, start_id, stop_id): - inp = [start_id] + sequence[:] - target = sequence[:] - if len(inp) > max_len: # truncate - inp = inp[:max_len] - target = target[:max_len] # no end_token - else: # no truncation - target.append(stop_id) # end token - assert len(inp) == len(target) - return inp, target - - -def getting_full_info(article, abstract_sentences, vocab, config): - # Get ids of special tokens - start_decoding = vocab.to_index(START_DECODING) - stop_decoding = vocab.to_index(STOP_DECODING) - - # Process the article - article_words = article.split() - if len(article_words) > config.max_enc_steps: - article_words = article_words[:config.max_enc_steps] - enc_len = len(article_words) # store the length after truncation but before padding - enc_input = [vocab.to_index(w) for w in - article_words] # list of word ids; OOVs are represented by the id for UNK token - - # Process the abstract - abstract = ' '.join(abstract_sentences) # string - abstract_words = abstract.split() # list of strings - abs_ids = [vocab.to_index(w) for w in - abstract_words] # list of word ids; OOVs are represented by the id for UNK token - - # Get the decoder input sequence and target sequence - dec_input, target = get_dec_inp_targ_seqs(abs_ids, config.max_dec_steps, start_decoding, stop_decoding) - dec_len = len(dec_input) - - # If using pointer-generator mode, we need to store some extra info - if config.pointer_gen: - # Store a version of the enc_input where in-article OOVs are represented by their temporary OOV id; also store the in-article OOVs words themselves - enc_input_extend_vocab, article_oovs = article2ids(article_words, vocab) - - # Get a verison of the reference summary where in-article OOVs are represented by their temporary article OOV id - abs_ids_extend_vocab = abstract2ids(abstract_words, vocab, article_oovs) - - # Overwrite decoder target sequence so it uses the temp article OOV ids - _, target = get_dec_inp_targ_seqs(abs_ids_extend_vocab, config.max_dec_steps, start_decoding, stop_decoding) - else: - article_oovs = ["N O N E"] - enc_input_extend_vocab = [-1] - - return enc_len, enc_input, dec_input, target, dec_len, article_oovs, enc_input_extend_vocab - - -def article2ids(article_words, vocab): - ids = [] - oovs = [] - unk_id = vocab.to_index(UNKNOWN_TOKEN) - for w in article_words: - i = vocab.to_index(w) - if i == unk_id: # If w is OOV - if w not in oovs: # Add to list of OOVs - oovs.append(w) - oov_num = oovs.index(w) # This is 0 for the first article OOV, 1 for the second article OOV... - ids.append(len(vocab) + oov_num) # This is e.g. 50000 for the first article OOV, 50001 for the second... - else: - ids.append(i) - if len(oovs) == 0: - oovs.append("N O N E") - return ids, oovs - - -def abstract2ids(abstract_words, vocab, article_oovs): - ids = [] - unk_id = vocab.to_index(UNKNOWN_TOKEN) - for w in abstract_words: - i = vocab.to_index(w) - if i == unk_id: # If w is an OOV word - if w in article_oovs: # If w is an in-article OOV - vocab_idx = len(vocab) + article_oovs.index(w) # Map to its temporary article OOV number - ids.append(vocab_idx) - else: # If w is an out-of-article OOV - ids.append(unk_id) # Map to the UNK token id - else: - ids.append(i) - return ids - - -def outputids2words(id_list, vocab, article_oovs): - words = [] - for i in id_list: - try: - w = vocab.to_word(i) # might be [UNK] - except KeyError as e: # w is OOV - # assert article_oovs is not None, "Error: model produced a word ID that isn't in the vocabulary. This should not happen in baseline (no pointer-generator) mode" - assert "N O N E" not in article_oovs, "Error: model produced a word ID that isn't in the vocabulary. This should not happen in baseline (no pointer-generator) mode" - article_oov_idx = i - len(vocab) - try: - w = article_oovs[article_oov_idx] - except ValueError as e: # i doesn't correspond to an article oov - raise ValueError( - 'Error: model produced word ID %i which corresponds to article OOV %i but this example only has %i article OOVs' % ( - i, article_oov_idx, len(article_oovs))) - words.append(w) - return words - - -def abstract2sents(abstract): - cur = 0 - sents = [] - while True: - try: - start_p = abstract.index(SENTENCE_START, cur) - end_p = abstract.index(SENTENCE_END, start_p + 1) - cur = end_p + len(SENTENCE_END) - sents.append(abstract[start_p + len(SENTENCE_START):end_p]) - except ValueError as e: # no more sentences - return sents - - -def show_art_oovs(article, vocab): - unk_token = vocab.to_index(UNKNOWN_TOKEN) - words = article.split(' ') - words = [("__%s__" % w) if vocab.to_index(w) == unk_token else w for w in words] - out_str = ' '.join(words) - return out_str - - -def show_abs_oovs(abstract, vocab, article_oovs): - unk_token = vocab.to_index(UNKNOWN_TOKEN) - words = abstract.split(' ') - new_words = [] - for w in words: - # w is oov - if vocab.to_index(w) == unk_token: - # if article_oovs is None: # baseline mode - if "N O N E" in article_oovs: - new_words.append("__%s__" % w) - else: # pointer-generator mode - if w in article_oovs: - new_words.append("__%s__" % w) - else: - new_words.append("!!__%s__!!" % w) - else: # w is in-vocab word - new_words.append(w) - - out_str = ' '.join(new_words) - return out_str diff --git a/PointerGen/data_util/logging.py b/PointerGen/data_util/logging.py deleted file mode 100644 index ae76c50..0000000 --- a/PointerGen/data_util/logging.py +++ /dev/null @@ -1,14 +0,0 @@ -import logging -import logging.handlers - -logger = logging.getLogger("ptr_gen_logger") - -handler1 = logging.StreamHandler() - -logger.setLevel(logging.DEBUG) -handler1.setLevel(logging.DEBUG) - -formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s") -handler1.setFormatter(formatter) - -logger.addHandler(handler1) diff --git a/PointerGen/data_util/utils.py b/PointerGen/data_util/utils.py deleted file mode 100644 index 2aa61fa..0000000 --- a/PointerGen/data_util/utils.py +++ /dev/null @@ -1,206 +0,0 @@ -# !/usr/bin/python -# -*- coding: utf-8 -*- -# Content of this file is copied from https://github.com/abisee/pointer-generator/blob/master/ -import os -import pyrouge -import logging -import tensorflow as tf - - -def print_results(article, abstract, decoded_output): - print("") - print('ARTICLE: %s', article) - print('REFERENCE SUMMARY: %s', abstract) - print('GENERATED SUMMARY: %s', decoded_output) - print("") - - -def calc_running_avg_loss(loss, running_avg_loss, summary_writer, step, decay=0.99): - if running_avg_loss == 0: # on the first iteration just take the loss - running_avg_loss = loss - else: - running_avg_loss = running_avg_loss * decay + (1 - decay) * loss - running_avg_loss = min(running_avg_loss, 12) # clip - loss_sum = tf.Summary() - tag_name = 'running_avg_loss/decay=%f' % (decay) - loss_sum.value.add(tag=tag_name, simple_value=running_avg_loss) - # print("writing to summary step: ", step) - summary_writer.add_summary(loss_sum, step) - return running_avg_loss - - -def print_config(conf, path): - path = os.path.join(path, "config.txt") - with open(path, "w") as f: - f.write('\n'.join(['%s:%s' % item for item in conf.__dict__.items()])) - print("writing config to dir " + path + " done!") - - -def write_eval_results(decode_path, eval_result): - count = 0 - file_path = os.path.join(decode_path, "ROUGE-RESULT.txt") - with open(file_path, "w") as f: - for key, value in eval_result.items(): - count += 1 - f.write(key + ": " + str(value) + " ") - if count % 3 == 0: - f.write("\n") - print("writing eval result done!") - - -import re -import os -import shutil -import copy -import datetime -import numpy as np -from rouge import Rouge - -import sys - -sys.setrecursionlimit(10000) - -REMAP = {"-lrb-": "(", "-rrb-": ")", "-lcb-": "{", "-rcb-": "}", - "-lsb-": "[", "-rsb-": "]", "``": '"', "''": '"'} - - -def clean(x): - return re.sub(r"-lrb-|-rrb-|-lcb-|-rcb-|-lsb-|-rsb-|``|''", lambda m: REMAP.get(m.group()), x) - - -def pyrouge_score_all(hyps_list, refer_list, config, remap=True): - nowTime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') - PYROUGE_ROOT = os.path.join('/remote-home/yrchen/', nowTime) - SYSTEM_PATH = os.path.join(PYROUGE_ROOT, 'gold') - MODEL_PATH = os.path.join(PYROUGE_ROOT, 'system') - if os.path.exists(SYSTEM_PATH): - shutil.rmtree(SYSTEM_PATH) - os.makedirs(SYSTEM_PATH) - if os.path.exists(MODEL_PATH): - shutil.rmtree(MODEL_PATH) - os.makedirs(MODEL_PATH) - - assert len(hyps_list) == len(refer_list) - gold_path = os.path.join(config.decode_path, "gold.txt") - pred_path = os.path.join(config.decode_path, "pred.txt") - - for i in range(len(hyps_list)): - system_file = os.path.join(SYSTEM_PATH, 'Reference.%d.txt' % i) - model_file = os.path.join(MODEL_PATH, 'Model.A.%d.txt' % i) - - refer = clean(refer_list[i]) if remap else refer_list[i] - hyps = clean(hyps_list[i]) if remap else hyps_list[i] - - with open(system_file, 'wb') as f: - f.write(refer.encode('utf-8')) - with open(model_file, 'wb') as f: - f.write(hyps.encode('utf-8')) - - with open(gold_path, 'a') as f: - f.write(refer.replace("\n", " ")) - f.write("\n") - with open(pred_path, 'a') as f: - f.write(hyps.replace("\n", " ")) - f.write("\n") - - # r = Rouge155('/remote-home/dqwang/ROUGE/RELEASE-1.5.5') - # r = pyrouge.Rouge155() - r = pyrouge.Rouge155('/remote-home/yrchen/ROUGE/ROUGE/RELEASE-1.5.5') - - r.system_dir = SYSTEM_PATH - r.model_dir = MODEL_PATH - r.system_filename_pattern = 'Reference.(\d+).txt' - r.model_filename_pattern = 'Model.[A-Z].#ID#.txt' - - output = r.convert_and_evaluate(rouge_args="-e /remote-home/yrchen/ROUGE/ROUGE/RELEASE-1.5.5/data -a -m -n 2 -d") - # output = r.convert_and_evaluate() - output_dict = r.output_to_dict(output) - - shutil.rmtree(PYROUGE_ROOT) - - scores = {} - scores['rouge_1_precision'], scores['rouge_1_recall'], scores['rouge_1_f_score'] = output_dict['rouge_1_precision'], \ - output_dict['rouge_1_recall'], \ - output_dict[ - 'rouge_1_f_score'] - scores['rouge_2_precision'], scores['rouge_2_recall'], scores['rouge_2_f_score'] = output_dict['rouge_2_precision'], \ - output_dict['rouge_2_recall'], \ - output_dict[ - 'rouge_2_f_score'] - scores['rouge_l_precision'], scores['rouge_l_recall'], scores['rouge_l_f_score'] = output_dict['rouge_l_precision'], \ - output_dict['rouge_l_recall'], \ - output_dict[ - 'rouge_l_f_score'] - return scores - - -def pyrouge_score_all_multi(hyps_list, refer_list, config, remap=True): - nowTime = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') - PYROUGE_ROOT = os.path.join('/remote-home/yrchen/', nowTime) - SYSTEM_PATH = os.path.join(PYROUGE_ROOT, 'system') - MODEL_PATH = os.path.join(PYROUGE_ROOT, 'gold') - if os.path.exists(SYSTEM_PATH): - shutil.rmtree(SYSTEM_PATH) - os.makedirs(SYSTEM_PATH) - if os.path.exists(MODEL_PATH): - shutil.rmtree(MODEL_PATH) - os.makedirs(MODEL_PATH) - - assert len(hyps_list) == len(refer_list) - - pred_path = os.path.join(config.decode_path, "pred.txt") - - for i in range(len(hyps_list)): - system_file = os.path.join(SYSTEM_PATH, 'Model.%d.txt' % i) - # model_file = os.path.join(MODEL_PATH, 'Reference.A.%d.txt' % i) - - hyps = clean(hyps_list[i]) if remap else hyps_list[i] - - with open(system_file, 'wb') as f: - f.write(hyps.encode('utf-8')) - - referType = ["A", "B", "C", "D", "E", "F", "G"] - - for j in range(len(refer_list[i])): - model_file = os.path.join(MODEL_PATH, "Reference.%s.%d.txt" % (referType[j], i)) - refer = clean(refer_list[i][j]) if remap else refer_list[i][j] - with open(model_file, 'wb') as f: - f.write(refer.encode('utf-8')) - - gold_path = os.path.join(config.decode_path, "gold.%s.txt" % (referType[j])) - with open(gold_path, 'a') as f: - f.write(refer) - f.write("\n") - - with open(pred_path, 'a') as f: - f.write(hyps) - f.write("\n") - - # r = Rouge155('/remote-home/dqwang/ROUGE/RELEASE-1.5.5') - r = pyrouge.Rouge155() - - r.system_dir = SYSTEM_PATH - r.model_dir = MODEL_PATH - r.system_filename_pattern = 'Model.(\d+).txt' - r.model_filename_pattern = 'Reference.[A-Z].#ID#.txt' - - # output = r.convert_and_evaluate(rouge_args="-e /remote-home/dqwang/ROUGE/RELEASE-1.5.5/data -a -m -n 2 -d") - output = r.convert_and_evaluate() - output_dict = r.output_to_dict(output) - - shutil.rmtree(PYROUGE_ROOT) - - scores = {} - scores["rouge_1_precision"], scores['rouge_1_recall'], scores['rouge_1_f_score'] = output_dict['rouge_1_precision'], \ - output_dict['rouge_1_recall'], \ - output_dict[ - 'rouge_1_f_score'] - scores['rouge_2_precision'], scores['rouge_2_recall'], scores['rouge_2_f_score'] = output_dict['rouge_2_precision'], \ - output_dict['rouge_2_recall'], \ - output_dict[ - 'rouge_2_f_score'] - scores['rouge_l_precision'], scores['rouge_l_recall'], scores['rouge_l_f_score'] = output_dict['rouge_l_precision'], \ - output_dict['rouge_l_recall'], \ - output_dict[ - 'rouge_l_f_score'] - return scores diff --git a/PointerGen/decode.py b/PointerGen/decode.py deleted file mode 100644 index 2066064..0000000 --- a/PointerGen/decode.py +++ /dev/null @@ -1,184 +0,0 @@ -from data_util.config import Config -from data_util.data import prepare_dataInfo, PAD_TOKEN -from data_util.logging import logger -from model.loss import MyLoss -from model.model import Model -from fastNLP import SequentialSampler -from fastNLP import Trainer -from fastNLP import Tester -from torch.optim import Adagrad -from model.metric import PyRougeMetric, FastRougeMetric -import os -import time -from data_util.utils import print_config, write_eval_results -from training_ptr_gen.callback import TrainCallback -import torch -import sys -import tensorflow as tf -import argparse - - -def initial_dir(mode, config, model_file_path=None): - if not os.path.exists(config.log_root): - os.mkdir(config.log_root) - - if mode == 'train': - _train_name = "" - if config.pointer_gen: - _train_name = _train_name + "_pointer_gen" - if config.is_coverage: - _train_name = _train_name + "_coverage" - - train_dir = os.path.join(config.log_root, 'train{}'.format(_train_name)) - if not os.path.exists(train_dir): - os.mkdir(train_dir) - - model_dir = os.path.join(train_dir, 'model') - if not os.path.exists(model_dir): - os.mkdir(model_dir) - - return train_dir, model_dir - else: - if model_file_path is None: - logger.error("error!, no model to load") - raise Exception("empty model file path!", model_file_path) - parent_path = os.path.dirname(model_file_path) - train_path = os.path.dirname(parent_path) - model_name = os.path.basename(model_file_path) - decode_path = os.path.join(train_path, 'decode_{}_{}'.format(config.test_data_name, model_name)) - # decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) - - if not os.path.exists(decode_path): - os.mkdir(decode_path) - else: - if os.path.exists(decode_path+"/"+"gold.txt"): - os.remove(decode_path+"/"+"gold.txt") - if os.path.exists(decode_path+"/"+"pred.txt"): - os.remove(decode_path+"/"+"pred.txt") - - return decode_path - - -def set_up_data(mode, config): - datainfo = prepare_dataInfo(mode=mode, test_data_path=config.decode_data_path, - train_data_path=config.train_data_path, vocab_size=config.vocab_size, - config=config) - logger.info('-' * 10 + "set up data done!" + '-' * 10) - return datainfo - - -def run_test(model_file_path, config): - decode_path = initial_dir('test', config, model_file_path) - config.decode_path = decode_path - if os.path.exists(os.path.join(config.decode_path, 'result.jsonl')): - os.remove(os.path.join(config.decode_path, 'result.jsonl')) - - datainfo = set_up_data('test', config) - - model = Model(vocab=datainfo.vocabs["train"], config=config) - if model_file_path is not None: - # state = torch.load(model_file_path, map_location=lambda storage, location: storage) - - state = torch.load(model_file_path, map_location=lambda storage, location: storage).state_dict() - model.load_state_dict(state) - - ''' - model.encoder.load_state_dict(state['encoder_state_dict']) - model.decoder.load_state_dict(state['decoder_state_dict'], strict=False) - model.reduce_state.load_state_dict(state['reduce_state_dict']) - ''' - - tester = Tester(model=model, data=datainfo.datasets['test'], metrics=PyRougeMetric(pred='prediction', - art_oovs='article_oovs', - abstract_sentences='abstract_sentences', - config=config, - vocab=datainfo.vocabs["train"]), - batch_size=config.batch_size) - eval_results = tester.test() - write_eval_results(decode_path, eval_results) - - -def getting_k_model_path(path, top_k): - _list = [name for name in os.listdir(path) if name.startswith("model_")] - assert len(_list) >= top_k, "error: too little models to choose lowest k loss models!!" - tmp = {} - for f in _list: - tmp_loss = float(f.split("_")[-1]) - tmp[f] = tmp_loss - k_result = sorted(tmp.items(), key=lambda item: item[1])[:top_k] - print("test models: ", k_result) - return [os.path.join(path, _item[0]) for _item in k_result] - - -# python decode.py -decode_data_path CNNDM/finished_files_new1/CNNDM.test.json -train_data_path CNNDM/finished_files_new1/CNNDM.train.json -test_model ../log/CNNDM/train_1576560623/model/model_223000_1576669601 -log_root CNNDM -is_pointer_gen -is_coverage -test_data_name cnndm -visible_gpu 5 -# python decode.py -decode_data_path CNNDM/finished_files_new1/CNNDM.test.json -train_data_path CNNDM/finished_files_new1/CNNDM.train.json -m ../log/CNNDM/train_pointer_gen_coverage/model/ -log_root CNNDM -is_pointer_gen -is_coverage -test_data_name cnndm -visible_gpu 5 -top_k 5 -if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Train script") - parser.add_argument("-top_k", default=1, help="choose the k lowest loss model to test", type=int) - parser.add_argument("-m", dest="model_file_path", required=False, default=None, - help="Model file for retraining (default: None).") - - parser.add_argument('-visible_gpu', default=-1, type=int, required=True) - parser.add_argument('-dataset_path', default="/remote-home/yrchen/Datasets") - parser.add_argument('-train_data_path', - default="CNNDM/finished_files_new1/CNNDM.train.json", required=True) - # parser.add_argument('-eval_data_path', - # default="CNNDM/finished_files_new1/CNNDM.val.json", required=True) - parser.add_argument('-decode_data_path', - default="CNNDM/finished_files_new1/CNNDM.test.json", required=True) - # parser.add_argument('-vocab_path', default='CNNDM/finished_files_new1/vocab.pkl') - parser.add_argument('-root', - default='/remote-home/yrchen/tasks/fastnlp-relevant/summarization/my-pnt-sum/log') - parser.add_argument('-log_root', default='CNNDM', required=True) - - parser.add_argument('-hidden_dim', default=256, type=int) - parser.add_argument('-emb_dim', default=128, type=int) - # parser.add_argument('-batch_size', default=8, type=int) - parser.add_argument('-batch_size', default=32, type=int) - parser.add_argument('-max_enc_steps', default=400, type=int) - parser.add_argument('-max_dec_steps', default=100, type=int) - parser.add_argument('-beam_size', default=4, type=int) - parser.add_argument('-min_dec_steps', default=35, type=int) - parser.add_argument('-vocab_size', default=50000, type=int) - - parser.add_argument('-lr', default=0.15, type=float) - parser.add_argument('-adagrad_init_acc', default=0.1, type=float) - parser.add_argument('-rand_unif_init_mag', default=0.02, type=float) - parser.add_argument('-trunc_norm_init_std', default=1e-4, type=float) - parser.add_argument('-max_grad_norm', default=2.0, type=float) - - parser.add_argument('-is_pointer_gen', dest='pointer_gen', nargs='?', const=True, default=False, - type=bool) - parser.add_argument('-is_coverage', nargs='?', const=True, default=False, type=bool) - parser.add_argument('-cov_loss_wt', default=1.0, type=float) - - parser.add_argument('-eps', default=1e-12, type=float) - # parser.add_argument('-max_iterations', default=500000, required=True, type=int) - parser.add_argument("-n_epochs", default=33, type=int) - - parser.add_argument('-lr_coverage', default=0.15, type=float) - parser.add_argument('-test_data_name', required=True, type=str) - parser.add_argument('-test_model', default='', type=str) - args = parser.parse_args() - - args.train_data_path = os.path.join(args.dataset_path, args.train_data_path) - # args.eval_data_path = os.path.join(args.dataset_path, args.eval_data_path) - args.decode_data_path = os.path.join(args.dataset_path, args.decode_data_path) - # args.vocab_path = os.path.join(args.dataset_path, args.vocab_path) - - args.log_root = os.path.join(args.root, args.log_root) - - if args.visible_gpu != -1: - args.use_gpu = True - torch.cuda.set_device(args.visible_gpu) - print("using gpu: ", args.visible_gpu) - else: - args.use_gpu = False - - logger.info("------start mode test-------") - if args.test_model == '': - k_model_path_list = getting_k_model_path(args.model_file_path, args.top_k) - for tmp_path in k_model_path_list: - run_test(tmp_path, args) - else: - run_test(args.test_model, args) diff --git a/PointerGen/model/__pycache__/loss.cpython-37.pyc b/PointerGen/model/__pycache__/loss.cpython-37.pyc deleted file mode 100644 index bce1479230cfc56fb0812b7f007af36e70b1e91d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1806 zcma)7&5j&35VpH}db)f5_GdN;BydWQ25EOB4u}InC?L3m6$qqAEk!M-?VasS|E=v= zc2}O$2IT}#z+vXdJ+Ht^_{u2{zy%JW$}ZGU(Eo{JH`2lQpyR0HhMu$C=Yn& zd7Sz@7>!#1;}sd=Qs7O>Q8RD?*7O zXP)tlZvxXXq3N24)1SLwj}6IulK=*W0(LloeZ1pI*M^$Onb3Ar7D{JuIaX#IR6B5n zytxpP&4i6zmuX$wUd1jmF7m7twcSCbWt(mq6}98i9oLdbAGw(e|vl%Pveq*QmQfj-b3} zWD!BU$s#s%k(l_5%KL^cy%kwdlejjye5rknxrom?H{K0}!e1_WCIM=ZpFGn$@!rAN zph4S*tYJHV{9!xP;j(M`97wW+Jg(@0y8kf zl?N-l#je4zq1hdi+c+=$&(3==x;I99v>ch86{Y0-P2E@-IWu7}>BUOSC;(n#`J#XRU0W zsx*G%Fx_+Nc9z>@GmM-`6S&c4=XB_H%h<)tStOEuUB393xEi(*P}YrNF{>j0LIWsZ zl!!*&EpG=~(C*MZu#M>uE#VNfzLx}V3VrKmk{oY7iL_XUE=1DStP()lB+KA6oR_Hg zv+R7%%Jqojll%x4*};ZxxhTsm+=4{%Z!0Ux(? uA0O)DN8cXhjTA@t;6h&TkK&$Lx9F|7ycL{J*C+i9>(af?7>K?Xb^ihGTGuiF diff --git a/PointerGen/model/__pycache__/metric.cpython-37.pyc b/PointerGen/model/__pycache__/metric.cpython-37.pyc deleted file mode 100644 index 914b402f3df1c5bebcdf556e38a7a3743a2e6358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3976 zcmd5<&2Jn@6|d^A>1of59mm8@2rw(bYDbFg6=(w(6NSXP%SyYGD2@p9Vzt^+WxMVE z7+2L8d(;C+W3(4mS`Y_>gk&H2Z#dTxPWvz9wC`2h(YuZlgWwo$o z+HUG+^{}1=VPN`RI+ZoThH2N*X4VQ@(DqsVn1s_G5*DzjW5TAmJGR3a=r>ps`b|Cq z{aes)v1#Z}oBk}DStp%aU&6^qhiacC2Z>CI9NO-SVzAAj5q!dxNP16Vi9IhZwzs+H zSo&7~NZ^!6_6otHI8F8Z*H}?DNL2#sri+2<4^+bB_kU9eCV}O!Sj9bxdqeTg>Qi{j zH6RHY(ZiLJoRCwpMmCmyZH=svefZtdKI1F^#~Hb$Thh{Ebe@#XJXt0C?N?;K^@@}f zKF#XBri-wbn<$>ij;8~2T4|2k5Io~Kt3E*6d;Cbd2XQ*!+LMD#?E3IFoPQ883uk)0 zz6@&$#TR#qj4vOF-VV=~RV?@9@>VQWp7s|7Px(Qdt7SRJvREX;Sb;{Dv!lg+t`>p0 zoE40x%b8K@5~!>RlG{+FaU$x_S$Gzx;rD<)DehTIz6%XbLdr;JvHE9Zi!zJZ$Mw)= z4s*c~9B_jg^N(rhenuP;dZ3FbJ!NcK*|Xb2jbp(#O17cOhd>k=lM{MMC;{D)$SNJ6 zc1d;})O2Yx`Z>7lHUX|{sKDDBPeqdFiswBpJ2maf zL7xllM^Ta|DvChwMK9jeUa!cvl5IU*@%yoevnY%EIzX{W4>hTM!MC{JJr3q{Bu}@* zH{j3$;*N-UB;Q1G4+t2(9!0%0mNJTr0mW?`yNhE`WdjJIf#p$;&Hx?GUDD9f`RRHX z!dP&69jfushv2yiylhNI&KLCXZAD9GOxMU4bYo%UGO)-ojF#?Q@LrhXDXa8AhenUP zu2=(2!dMP=8{4DW(fzV^;;GuMe@aJwSz~tT|G~OTMzvQYUvP-3?*-zw6l?-ksf}vC zf|b9-{cB^2me~#Vi1_pV+%_525A%x8oIN<1aE@9io4Fu40BQHnr2Vs!R?Qs+l|-|1 zz`S{4cAqM1rRg!dI!#$WnPRn*Mmcp#PXWaC{|b>tcALQUfm^S*z-gUvZ2ZczxpS`w zv%yp9!{Z=mpOqD3<@SYvSK6O$#;UjTpxxcLK1=aK_20&;m^-?8ir{J>@|B6q3HDfE zQ?&6qR5=F(y?UcDqLqFBWbHfa6##%o*-5Sd{;Z{UwUw~Ss}LKEYrPIu(?qIXk@X)v zMrkP8Bg1zt`xU@LI*1itT1~<0Q~3xQ=Zm@m0a4SXFY*1Fwlxhp)7nmXu3Zu5fW1Bp z822`guBZA1oQR8P8>b{Ww)cf7gl=X@9x>jF zq~d+4y|~{8Ak@w-h!WpI`QHZ8X^8J&`)YXUz*r}e$&hQhtAh&JBY<|@1epMCEHW4$ zHnt?hy(;=JcoeT+Zu6_UqF|bGKzBOyjQlH+LvS@?O z&=w7VT9$(pdic!1GY7No)UJl~xww}-Gz=DeqpD3zqZ1e`qg`{7j%73en&%SW+L(D_ zYaMKJ6;&|40}G9<2_4?KZ0n0D9k+|6Ltg>_0`lc?#sT?)D1v-2NU`0BqWwXfRwD+b z#1BER_%RUOJVUY`Pt$WW!?Sd#XyYVMlu4MdV}w-uKP-VfS&(cZy@ zg=m|EC~*a(L*7%Iz4a22Dn8im)CJ~t?IihDAu#D(#J6@iqJcoGg~pky%aOTwbezgG zKf=|nz?+`H{C6z~jBoaVFVU!k-lO*+939A~bB21*^Xc&3bu--<7oJ$b9e#pj6$vJ4 zvxE34wkGj+#pfTvPzqI|p~2^Eft)wu@y+K){|Em5d;BT&_X6lf zFTlAMGZ^HwV;3lK=kfJM5qwastJ^T63zn_E8l*r%?u|$OoMrtFeoTKJ5}(2ozhYZf zXoYsqYMQs*cbblE(r({zEZgdP&5YzYy=*_%%=P`IFW+u2-!C)^lJPqOmYK1Q5>TSNyE^fZm@X|~&RPCKK(}@SILF)EfhpE>| zqJG0^X2VXL#BsCOi31b{J$!!KQVVGMN3YyaQGb|3PwWi)(T%(4A{yLCTJdgtW2+S> zgWlc~D(XeITZ80Ae9-S>{zt8(GaTIL-+f|lkUW9R8~tGz^$fhecQ>tKoDQ%t!1w{j zUg5fY0Lw1eb=$MmBGR+vvm}d0mj6v84!^FguJwZT#?OrG!>?%@sh=1*+8NuSePXLm zC62bVbL@;{%9kgmV#EV7npW&T8NXDO5!`6WGBsSM@cJ5l**w|>K_a`TSL_k(rjBO zDy@;80%ilLoh0bDwo@ zXb{S-8&KtVCFzsxgFDG(r9<36I?o*UEnHS@TW$mCnSXHXiGNGw}@9PrE>NI}8_Tr}q}wmAn-HXtcm z=3#G6CvXwf%mh}E`aTmd8;l8%f_@0~ro%subQ{m?$Ibi{p7;|0k=3+AtLcPx=s*s; zp&NR5dlA?s%)VtE+s!P}xzLw%F3f{93aR&*sMT)^qR|Q8T&yhW3KAMpEdc8R+S&zl zvq~pa=Z%bXr z0O|(8lLSu@kS@<}i60mu3Z6w_ESlEI+UD=5%mrMZ);O~g^5<+N2{#DRdE36o6oiwc zT&yPpqR9XoAnwffom9hBq{(@CBdbUpl;c=>>Q7hx$1ElbT!5`#;8I9Gmc3>l6=e~o z6t-E zSAsXPmciRG2phw@$Mz)-Pm+chIOxmvrEV`8eB?x0x3_~Se!lR5iJUIogmlDyQzQmK zS_lHDs)HWWr6AZpX!T5qBFQUqN9u#z_9B(sRX@T!(#R=92zOI(%I^IsBt)`eR)Dr5y z1Y+92yRirkJ^*6Xr|~8DPMyIZ&A-^c6@_7Eux&(r;r6iIx)q3i%SHWLupjzq9*IdM z3QctlAoafR>dh~vg`E!UvjMBAb(Rs&Y4!^u_*3__U}r+jP!;(gX!lxi90YR#Ei-uq zZQ>GuWml-_oHb~@qv~WE=F(ugnWTaYp6Btz-viLr7_tqgoQ=>sOusHh9bD~-y!guJX~UP+f{Y2@qjmNP1#jelaHesP?q>`n^ZV%3sY?I>T z$@XDF5&9XJAkNXkl)NTwp#c6g8mi|Aew09jQixPqo=|Q(g26YTUJ@bD|1xWeL?UDT z89br~Fj!Got&N=7k9g+q|3w-VUx~tlcJwNY)aZ;vqPk&+G1=$CB~oaMJOMpIj^q+h zbT?<@jWOEKl;@>9&+>`EWr(SuUc>-ui$GBF5>sC!prNElAgQlpmcfpgcC*j+jQb6u z=JK08(FrpK0JaF0F09?7`l;p4IiIA;A6=Ch=O5xjlRN2%IAbW&&^dvVa$=1kW5o=H z90hm5K>;UQV>lWoloH_bkEorU)b_#0tew*ta4S+eXWm=z{~8&?o98*NkmeIO4DsGD zj?|YiLG=}aIil>BQV$;8f!b#N4nUee7{u^yqob(d8_gdu+ulj-cGKGd|1_%;F>A0K z20Kl!{bBj-bDW__zQ=eb;?=h=+f_c!(b8!||M5JaBJ?uv{S4)kG>$k3NfMOr3$gsb zl%M}}0^5qp>vA#tAWyPkR+8Z;Z)*ndcJ=uueCqDOu1>oj-z7S71C#WV+0 zG;L83KEO^>^PW|wMZ*+B7Lb&U_N0eDwTso9O@u?B3)^Wij40t~Q+HGQ_D6EZ&!XEI zcVz7qT9&mLO6I(gMLquNcxJqT5E5-Y;f7=Tb(e0oXf#LkWM1c~y-w`0M`s&a&K+l< znF_iv&V~-YsjXaHxCm{Pp_IIm0KjWV=VS?UzV&}yQ;rkZR)FGydo ziAD=axm(c-#O;0f9Cd3{)zvP)J?L6zw5Y3k@sc&F>6)3>sFoDQRgF*rS}*A(_JnyX zhFRh0CDh|Q*>{ced)HR5{AYOxGUyuSmC>lFGono=7L=$-AfD>;CajX&ZWQg&d=brA zQ#X;X)(B|nsUAQID}N7Bfb$H!#|rxdM$;y(!H$ag-DRs>JlskU2vVQqmwT(<7g^b; z8$FtfgCy8#CF)JKAh)DdC_ssLLBk`^5bufumD;zOZW8ROhft@P0|^DtgH*7R2+ZW7 zuvtPJgGE%4akDa|L&HlpuC2UV@W&UHBT}9Zb?&*i^`_viKNf zNLolQoj=JyQddR`l#V0#kg!;2fh;2BOK(}dXj&o{ga9dA8y6T>rJRH%v^1*gy7(vm z|D#{P=v>c#mGyY)4>*_58ZBcLMabE@%%q~ry0(S56jlKOg7bUz8Ke=$LkiYlH`l!|`O4|V zNy^tYQ+i$3;e}nm`1!5u+!He{7OjDa0y$c4)BoN;SbqZn_f~I%BJ`6RM~gF;dBen2 zKY3KT3wi%kfPxSevhwxG#&YVzU_`VO9=K=`7d@Uc8r3mIG|ciAQ^E~YOzNuyUju-$ z>1_9holw2ata}7hLh23+OEEen)8H^Akl=rs*;C*napfBiOdLCz65<4$=Ugi(ns#Xh zGCz1KEh4I=TES7IhH<(~b!7q&CfF57^uQ=BFHWMpW_~Atnxa$J%(tgWb(b^yNrEOo zvpmyG1N74@%n_B^hfQCi zT)38yA_cpet2$`Ino@qWFqI@fn0BL}{Y_4BqTT9>IcKyROZbcFbxgxuVNC*F;F7oU z2zbHbVk9}thB>@5p&#b)&W44sh<7e5g=M_`uo5odoe!(wBHjfFkQKoTOKIkd*wEf) zd+L=Wa}o-@uSY1AUq)VnsZVG-K#d)XX*H;&>;Hg7!h!Na`>0P-{J>@O31li;rs{51dwfR~wGAQ1nbD)6EW4A6L_R+$8~-ICA> zs6)csM-{=|T&oa!{L%iLX%z;3G(1(<@EJs=vXpgr5UC$~Cpeje^vofym7(>%g%Wx^ zu%rFMrxB+@3mn;9gC0QK>Tn%?JtC3Fsg8=Y?R9?D(#2=3{V(BI?YYGG%=db+xsRll_V-u`=tCNE&7)niD{ z(Zc?F=yM@-cRlqz>6f!y*usGzR#KkkgcJ3}TGfyLOidZdi;$M)O)O!Sf z1)#AsaULjo5l`a?j07-@CgNC3U<4OT=kfR-4;)n<`U|sV5GMA75pj~Lvq@HGXh9!4U_Psh z@DP|U2j(lV)`a=|Q69`!)Cj2w^A+f@Y9Gv30Q0>L=KI`hR#HmJFo$r?4aQplSt3XU zm%FOI1u+Qn$Bc6F&cT%AHw9q^{S>!65UdM=Rev3G7jkXX)R<|~r8*(_8w8|R^)~@< zFQGFqp^7qh4ni-WnvT`qVwJy5@GXKFm8!qP&%aABr@_*M2H9L_kO@PBc_w8?p+QVB z4k@N%p|bi8`bx!j<<*Xvqx&ly;#Ud&0V|ZIjf2}CJY2rOZ8b6CQzZ0fNkW&=*aBgA zcHQyabwflT7SAJD;mAl__*D{vTV!b8A)X7fy33d7?t z4Rat((Sk-5oUGY$hJ{xj+2?t|f40|xJ=l8g2(AAYDp*HX%=8#L4{qTwG`{|94`(vH z_&Fp@WjPSojqav772yyzj(84lg6$1wV#`U>^TQS9z1}6ZM1jN8IX`5ZdWgR(ct}iw zhO1}-iyer7Mg{|%c(3OeRic)`i3ra>cyGqj@Cjb`j2|Pui;z9?+)+(D6bpK+4h?o; z8(syTi+ENb|5p!xHG$I%U6Mtd+7Y(-=4g#lKD55-=(R0e3V{azZ%AK)bzVbs2XQEk za}`MOwUff@+0pvw0%r2S=4(Ne#=MYPg)Z>b@9T#~tAi@) zmGr892>uD9TdR5*KFqpYMp;4X0j4mcirUi`@m-dZ2S?@oJ?J^q)))1PUSI?(biPR~ z;+lwIBbR!6FelOl9=G6(4*r4Io@rS!rdBVG*;&r`iuz|jw)zc%e-3~nmtSL=R-dsy zXnGhH{YOlRKmF@WiD5zq!Z5#h2S1I^G~3$SgX2nu zIn^%`(6U#IAvMeN1Ll#`Ci6tqAgtbDK=>SCOPE`eqMt=o%e@TlhiwjpA%8eqsDk$$ z{CNWFPE`~}76(JL)3f|C)>+x`!o*To{ZtBk-1zcBd&h7_c{Ga=0Y& z463O)ss*>_bRk0j6DjzuQ~bDK<}fR3Qxfs_Bpzxl7f<|KfcLx!J9;NP?8H%r+`VF8 zSMC9UnVfO<1c#fvX@J9#95e_*z~&~Gse`)A1>>I1MN97kEj^3}7a8miCf~M20Ax&P zd6a+0ddEh29@+^9PGEKs3dku;LdE6Rop;=KoO|xLcw)Wd-gD&byluU0zwNy3zU^&g zLOLlvbRzCBk^P}@D-aF{6pyO!I)~rTRg{!>t#@6x{|G4KA_HogZ#XvYTb8a!t3~u? z;|LwS=|z*1EF{(OqFy{@Q2yA|6vP-yc{om~s(;ily-d1~?EJ zs3V2o1yUD~TJ9p)VO#Io`%UQb>iD8wq7X5dl<)fd8%Myal6OG_%^F1BCCq;XrtSa6 z$m@p?br`vZk=Lc~)k)vKKj~Y9+2|5*x(4C5DuOSk*J#p1AXY^His+-b8(qOzmngnQ zA46(ge~h>aC4i1qT^&8FFMs%sU@q5mmBFlc9kmnY23g>`g1va;@asuQKO%zpr$>*% zaDEg5dHJ5p_dSOYYi#HTCI2y5o1?y?ukd>Sjv0OYaMSEA=OO((J9->gd_X^}AJvaj zz>hDVSo-RjuZDh1e?0W>XGTxxYrxDCf){81yRTXAI{Qbj;m+TvayS599@N)PKsRr^ zDZ96E&+9%kzLI>bd-a5?an*T=hH5~gxm964-CGdGe z-+;O(n4`p*F+r`I$FoE(r|-HAwfn|rMzBe-o(X54;ObLoZQJ*7j6>WLZaMdG2)Zga zG1YVTgy(^E@YMax&pZ3H7rkxtCqHp*KJtoG&RmhA^NS$W5EdS;5SaUcl~-?m`jwl( z3okzZ@(Vw{`B|ffM8i0#bNxvP>)<9$hC!nz)6!Ja$ybJ^T^n8&UOPre&YXikDm+VF z*dF%xp8M`pB4)j#4I>fJ1bXGPK{Ty=26+^Zui}YmxC!zKyvf_O3=)idw&j8m?4|#J zN*`vNssD_E-=0lkephg68_NDXJ{{sJhrkZuTH3L_iz6g$4@&%+O4-wcXN*lQafN@+ z@o8|SWftIPIb^_z^8CII1Nv8HYv#Hthh&>_}e}Yy2BmvdM z{2tyJ6j7H6it0!Rib|v}gg@=m^Th2?LrtOFxrOJ=RcBkFfpt4DA^ zKxLWcX^zURqEqK` za+t28MdQiyI{ug0&qo_kZ?a08;NJl>CEEI=`YzHm=i`H3B9|@Ulr_tz@ASoDDZ$6a z6%+|h;S#{9kGA=ko|@3vXy&H%CW*GO#NK7uX`XxvCx_^D%B98{`vufeKS?mR%Wy@= zT>3;D_6B>Y5Sg>PfN>LI0^gl5ZsyseI3djn@2d?}XWM+MUt!D1lsX6tn}eR9)0}tT z5ihXm528ELs9BP(0^{VQg^A;afebTe)PLkmf0y9*2>ug+FijPyG;1Wsx5+Z}V{t&~ zUd442253v(hF5b662A4_nup*n{x+n{moOe;4*U~SQ7&UUR}tu?L&=B)j*haE8ZbL? ziNzB~6XoomL1V--oO+h=44R-mLdhO-mvQ*XaPbCAPu@~u|Le|C>9nYuS$-r{%82Lj z#D@UTcnl6s5BMFqM{nbZA3;9^>kx++6%Rj$z+6_e>~jp7=@PWHO_vF82i61ME}SR6 zaS<498ErcRUQawYa|ksWXJ`L9?%w0NT!;Ul;cTV_dNm!nW(aw66SFY~<`O#i1AdYd z8Gb033eB;4OSu4u!{8rd0+w6{8{!{m6cq#hm4Q)7 zMYkheoL7PP+~zqI0~``)!s)=Yy=XAX15UAZkPNp~D>QK=(EvF{-naJ-B#Mdah;h)m z-RkuC&p0B+d5IjZGD1ZITnk1Rl79245B~p#oLs4^9Q`qZj}uS<<0j#)E-p5T!IEad zLAYdWZn|!<&XC}z2#D?ZMwpaH2>;o>w0e$skt_JToKOQL@YW!&DU|S+1+`EDKx#OC U)?dKm`CfIo)~GGjZq%Cp7YU@MrvLx| diff --git a/PointerGen/model/loss.py b/PointerGen/model/loss.py deleted file mode 100644 index 2db0acc..0000000 --- a/PointerGen/model/loss.py +++ /dev/null @@ -1,62 +0,0 @@ -import torch -import numpy as np - -from fastNLP.core.losses import LossBase - -def is_infinite_loss(losses): - for loss in losses: - if not (np.isfinite(loss.data.cpu())).numpy(): - # print("the infinite loss is :", loss) - return True - return False - -class MyLoss(LossBase): - def __init__(self, config=None, target=None, list_final_dist=None, list_coverage=None, list_attn=None, - max_dec_len=None, dec_padding_mask=None, dec_lens_var=None, padding_idx=-100, reduce='mean'): - super().__init__() - self._init_param_map(target=target, list_final_dist=list_final_dist, list_coverage=list_coverage, - list_attn=list_attn, max_dec_len=max_dec_len, dec_padding_mask=dec_padding_mask, - dec_lens_var=dec_lens_var) - self.padding_idx = padding_idx - self.reduce = reduce - self.config = config - - def get_loss(self, target, list_final_dist, list_coverage, list_attn, max_dec_len, dec_padding_mask, dec_lens_var): - step_losses = [] - config = self.config - target_batch = target - if config.use_gpu: - target = target.cuda() - target_batch = target_batch.cuda() - - for di in range(min(max_dec_len, config.max_dec_steps)): - - target = target_batch[:, di] - final_dist = list_final_dist[di] - attn_dist = list_attn[di] - - gold_probs = torch.gather(final_dist, 1, target.unsqueeze(1)).squeeze() - step_loss = -torch.log(gold_probs + config.eps) - - if config.is_coverage: - coverage = list_coverage[di] - step_coverage_loss = torch.sum(torch.min(attn_dist, coverage), 1) - step_loss = step_loss + config.cov_loss_wt * step_coverage_loss - - step_mask = dec_padding_mask[:, di] - step_loss = step_loss * step_mask - # if is_infinite_loss(step_loss): - # print("catch inifite loss: ", step_loss) - # print("gold_probs: ", gold_probs) - # print("final_dist: ", final_dist) - # print("target: ", target) - step_losses.append(step_loss) - sum_losses = torch.sum(torch.stack(step_losses, 1), 1) - batch_avg_loss = sum_losses / dec_lens_var.float() - - loss = torch.mean(batch_avg_loss) - - # if not (np.isfinite(loss.data.cpu())).numpy(): - # print("dec_lens_var: ", dec_lens_var) - - return loss diff --git a/PointerGen/model/metric.py b/PointerGen/model/metric.py deleted file mode 100644 index 1bbbddc..0000000 --- a/PointerGen/model/metric.py +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# __author__="Danqing Wang" - -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -from __future__ import division - -from rouge import Rouge - -from fastNLP.core.metrics import MetricBase - -from data_util.logging import logger -from data_util.utils import pyrouge_score_all, pyrouge_score_all_multi - -from data_util.data import outputids2words -from data_util import data - - -def remend_score(scores_all): - remend_score = {} - for key, value in scores_all.items(): - for subkey, subvalue in value.items(): - remend_score[key + "-" + subkey] = subvalue - return remend_score - - -def make_html_safe(s): - s = s.replace("<", "<") - s = s.replace(">", ">") - if "<" in s or ">" in s: - print("-------html not safe sent:") - print(s) - return s - - -class RougeMetric(MetricBase): - def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): - super().__init__() - - self.vocab = vocab - self.config = config - self._init_param_map(pred=pred, art_oovs=art_oovs, abstract_sentences=abstract_sentences) - - self.prediction = [] - self.referece = [] - - def evaluate(self, pred, art_oovs, abstract_sentences): - """ - - :param prediction: [batch, N] - :param text: [batch, N] - :param summary: [batch, N] - :return: - """ - - batch_size = len(pred) - - for j in range(batch_size): - # print(j,"----------------------",pred[j]) - output_ids = [int(id) for id in pred[j]] - decoded_words = outputids2words(output_ids, self.vocab, - (art_oovs[j] if self.config.pointer_gen else None)) - - ''' - if batch_size == 1 and not isinstance(art_oovs[j], list): - print("art oovs: ",art_oovs) - decoded_words = outputids2words(output_ids, self.vocab, (art_oovs if self.config.pointer_gen else None)) - else: - decoded_words = outputids2words(output_ids, self.vocab, - (art_oovs[j] if self.config.pointer_gen else None)) - ''' - # Remove the [STOP] token from decoded_words, if necessary - try: - fst_stop_idx = decoded_words.index(data.STOP_DECODING) - decoded_words = decoded_words[:fst_stop_idx] - except ValueError: - decoded_words = decoded_words - if len(decoded_words) < self.config.min_dec_steps: - continue - - decoded_sents = [] - while len(decoded_words) > 0: - try: - fst_period_idx = decoded_words.index(".") - except ValueError: - fst_period_idx = len(decoded_words) - sent = decoded_words[:fst_period_idx + 1] - decoded_words = decoded_words[fst_period_idx + 1:] - decoded_sents.append(' '.join(sent)) - - self.prediction.append("\n".join([make_html_safe(sent) for sent in decoded_sents])) - self.referece.append("\n".join([make_html_safe(sent) for sent in abstract_sentences[j]])) - ''' - if batch_size == 1 and not isinstance(abstract_sentences[j], list): - #print("abstract sentences",abstract_sentences) - self.referece.append(" ".join(abstract_sentences[0])) - else: - self.referece.append(" ".join(abstract_sentences[j])) - ''' - - def get_metric(self, reset=True): - pass - - -class FastRougeMetric(RougeMetric): - def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): - super().__init__(pred, art_oovs, abstract_sentences, config, vocab) - - def get_metric(self, reset=True): - logger.info("[INFO] Hyps and Refer number is %d, %d", len(self.prediction), len(self.referece)) - if len(self.prediction) == 0 or len(self.referece) == 0: - logger.error("During testing, no hyps or refers is selected!") - return - rouge = Rouge() - scores_all = rouge.get_scores(self.prediction, self.referece, avg=True) - if reset: - self.prediction = [] - self.referece = [] - logger.info(scores_all) - scores_all = remend_score(scores_all) - return scores_all - - -class PyRougeMetric(RougeMetric): - def __init__(self, pred=None, art_oovs=None, abstract_sentences=None, config=None, vocab=None): - super().__init__(pred, art_oovs, abstract_sentences, config, vocab) - - def get_metric(self, reset=True): - logger.info("[INFO] Hyps and Refer number is %d, %d", len(self.prediction), len(self.referece)) - if len(self.prediction) == 0 or len(self.referece) == 0: - logger.error("During testing, no hyps or refers is selected!") - return - if isinstance(self.referece[0], list): - logger.info("Multi Reference summaries!") - scores_all = pyrouge_score_all_multi(self.prediction, self.referece, self.config) - else: - scores_all = pyrouge_score_all(self.prediction, self.referece, self.config) - if reset: - self.prediction = [] - self.referece = [] - logger.info(scores_all) - return scores_all diff --git a/PointerGen/model/model.bak.py b/PointerGen/model/model.bak.py deleted file mode 100644 index 1f40e28..0000000 --- a/PointerGen/model/model.bak.py +++ /dev/null @@ -1,546 +0,0 @@ -# from __future__ import unicode_literals, print_function, division - -import torch -import torch.nn as nn -import torch.nn.functional as F -from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence -from data_util.config import Config -from numpy import random -from data_util.logging import logger -import numpy as np - -from data_util import data - -from torch.autograd import Variable - -config = Config() -use_cuda = config.use_gpu and torch.cuda.is_available() - -random.seed(123) -torch.manual_seed(123) -if torch.cuda.is_available(): - torch.cuda.manual_seed_all(123) - - -def is_infinite_dist(distss): - is_nan_list = torch.isnan(distss) - if (is_nan_list.max() == 1).item() == 1: - return True - return False - - -def init_lstm_wt(lstm): - for names in lstm._all_weights: - for name in names: - if name.startswith('weight_'): - wt = getattr(lstm, name) - wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) - elif name.startswith('bias_'): - # set forget bias to 1 - bias = getattr(lstm, name) - n = bias.size(0) - start, end = n // 4, n // 2 - bias.data.fill_(0.) - bias.data[start:end].fill_(1.) - - -def init_linear_wt(linear): - linear.weight.data.normal_(std=config.trunc_norm_init_std) - if linear.bias is not None: - linear.bias.data.normal_(std=config.trunc_norm_init_std) - - -def init_wt_normal(wt): - wt.data.normal_(std=config.trunc_norm_init_std) - - -def init_wt_unif(wt): - wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) - - -class Beam(object): - def __init__(self, tokens, log_probs, state, context, coverage): - # 一个beam可以理解为存储着一组到当前位置字的“路线” - self.tokens = tokens - self.log_probs = log_probs - self.state = state - self.context = context - self.coverage = coverage - - def extend(self, token, log_prob, state, context, coverage): - return Beam(tokens=self.tokens + [token], log_probs=self.log_probs + [log_prob], state=state, context=context, - coverage=coverage) - - @property - def latest_token(self): - return self.tokens[-1] - - @property - def avg_log_prob(self): - return sum(self.log_probs) / len(self.tokens) - - -class Encoder(nn.Module): - def __init__(self): - super(Encoder, self).__init__() - self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) - init_wt_normal(self.embedding.weight) - - self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=True) - init_lstm_wt(self.lstm) - - self.W_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2, bias=False) - - # seq_lens should be in descending order - def forward(self, input, seq_lens): - embedded = self.embedding(input) - - _, indices = torch.sort(seq_lens, dim=0, descending=True) - _, desorted_indices = torch.sort(indices, dim=0) - embedded = embedded.index_select(0, indices) - lengths = list(seq_lens[indices]) - - packed = pack_padded_sequence(embedded, lengths, batch_first=True) - output, hidden = self.lstm(packed) - - encoder_outputs, _ = pad_packed_sequence(output, batch_first=True) # h dim = B x t_k x n - # print("inside of encoder : encoder outputs size : ",encoder_outputs.size()) - encoder_outputs = encoder_outputs.index_select(0, desorted_indices) - hn, cn = hidden - hn = hn.index_select(1, desorted_indices) - cn = cn.index_select(1, desorted_indices) - hidden = (hn, cn) - encoder_outputs = encoder_outputs.contiguous() - - # encoder_outputs, hidden = self.lstm(embedded) - # encoder_outputs = encoder_outputs.contiguous() - - encoder_feature = encoder_outputs.view(-1, 2 * config.hidden_dim) # B * t_k x 2*hidden_dim - encoder_feature = self.W_h(encoder_feature) - - return encoder_outputs, encoder_feature, hidden - - -class ReduceState(nn.Module): - def __init__(self): - super(ReduceState, self).__init__() - - self.reduce_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim) - init_linear_wt(self.reduce_h) - self.reduce_c = nn.Linear(config.hidden_dim * 2, config.hidden_dim) - init_linear_wt(self.reduce_c) - - def forward(self, hidden): - h, c = hidden # h, c dim = 2 x b x hidden_dim - h_in = h.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) - hidden_reduced_h = F.relu(self.reduce_h(h_in)) - c_in = c.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) - hidden_reduced_c = F.relu(self.reduce_c(c_in)) - - return (hidden_reduced_h.unsqueeze(0), hidden_reduced_c.unsqueeze(0)) # h, c dim = 1 x b x hidden_dim - - -class Attention(nn.Module): - def __init__(self): - super(Attention, self).__init__() - # attention - if config.is_coverage: - self.W_c = nn.Linear(1, config.hidden_dim * 2, bias=False) - self.decode_proj = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2) - self.v = nn.Linear(config.hidden_dim * 2, 1, bias=False) - - def forward(self, s_t_hat, encoder_outputs, encoder_feature, enc_padding_mask, coverage): - b, t_k, n = list(encoder_outputs.size()) - dec_fea = self.decode_proj(s_t_hat) # B x 2*hidden_dim - dec_fea_expanded = dec_fea.unsqueeze(1).expand(b, t_k, n).contiguous() # B x t_k x 2*hidden_dim - dec_fea_expanded = dec_fea_expanded.view(-1, n) # B * t_k x 2*hidden_dim - - att_features = encoder_feature + dec_fea_expanded # B * t_k x 2*hidden_dim - if config.is_coverage: - coverage_input = coverage.view(-1, 1) # B * t_k x 1 - coverage_feature = self.W_c(coverage_input) # B * t_k x 2*hidden_dim - att_features = att_features + coverage_feature - - e = torch.tanh(att_features) # B * t_k x 2*hidden_dim - scores = self.v(e) # B * t_k x 1 - scores = scores.view(-1, t_k) # B x t_k - - attn_dist_ = F.softmax(scores, dim=1) * enc_padding_mask # B x t_k - normalization_factor = attn_dist_.sum(1, keepdim=True) - attn_dist = attn_dist_ / normalization_factor - - attn_dist = attn_dist.unsqueeze(1) # B x 1 x t_k - c_t = torch.bmm(attn_dist, encoder_outputs) # B x 1 x n - c_t = c_t.view(-1, config.hidden_dim * 2) # B x 2*hidden_dim - - attn_dist = attn_dist.view(-1, t_k) # B x t_k - - if config.is_coverage: - coverage = coverage.view(-1, t_k) - coverage = coverage + attn_dist - - return c_t, attn_dist, coverage - - -class Decoder(nn.Module): - def __init__(self): - super(Decoder, self).__init__() - self.attention_network = Attention() - # decoder - self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) - init_wt_normal(self.embedding.weight) - - self.x_context = nn.Linear(config.hidden_dim * 2 + config.emb_dim, config.emb_dim) - - self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=False) - init_lstm_wt(self.lstm) - - if config.pointer_gen: - self.p_gen_linear = nn.Linear(config.hidden_dim * 4 + config.emb_dim, 1) - - # p_vocab - self.out1 = nn.Linear(config.hidden_dim * 3, config.hidden_dim) - self.out2 = nn.Linear(config.hidden_dim, config.vocab_size) - init_linear_wt(self.out2) - - def forward(self, y_t_1, s_t_1, encoder_outputs, encoder_feature, enc_padding_mask, - c_t_1, extra_zeros, enc_batch_extend_vocab, coverage, step): - - if not self.training and step == 0: - h_decoder, c_decoder = s_t_1 - s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), - c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim - c_t, _, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, - enc_padding_mask, coverage) - coverage = coverage_next - - y_t_1_embd = self.embedding(y_t_1) - x = self.x_context(torch.cat((c_t_1, y_t_1_embd), 1)) - lstm_out, s_t = self.lstm(x.unsqueeze(1), s_t_1) - - h_decoder, c_decoder = s_t - s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), - c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim - c_t, attn_dist, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, - enc_padding_mask, coverage) - - if self.training or step > 0: - coverage = coverage_next - - p_gen = None - if config.pointer_gen: - p_gen_input = torch.cat((c_t, s_t_hat, x), 1) # B x (2*2*hidden_dim + emb_dim) - p_gen = self.p_gen_linear(p_gen_input) - p_gen = torch.sigmoid(p_gen) - - output = torch.cat((lstm_out.view(-1, config.hidden_dim), c_t), 1) # B x hidden_dim * 3 - output = self.out1(output) # B x hidden_dim - # output = F.relu(output) - - output = self.out2(output) # B x vocab_size - vocab_dist = F.softmax(output, dim=1) - - if config.pointer_gen: - vocab_dist_ = p_gen * vocab_dist - attn_dist_ = (1 - p_gen) * attn_dist - - if extra_zeros is not None: - vocab_dist_ = torch.cat([vocab_dist_, extra_zeros], 1) - final_dist = vocab_dist_.scatter_add_(1, enc_batch_extend_vocab, attn_dist_) - else: - final_dist = vocab_dist - - if is_infinite_dist(final_dist): - print("catch nan final dist: ", final_dist) - print("embedding weight:", self.embedding.weight) - print("y_t_1_embd: ", y_t_1_embd) - print("y_t_1:", y_t_1) - - return final_dist, s_t, c_t, attn_dist, p_gen, coverage - - -class Model(torch.nn.Module): - def __init__(self, vocab=None): - super(Model, self).__init__() - encoder = Encoder() - decoder = Decoder() - reduce_state = ReduceState() - self.vocab = vocab - - # shared the embedding between encoder and decoder - decoder.embedding.weight = encoder.embedding.weight - - if use_cuda: - encoder = encoder.cuda() - decoder = decoder.cuda() - reduce_state = reduce_state.cuda() - - self.encoder = encoder - self.decoder = decoder - self.reduce_state = reduce_state - - def get_input_from_batch(self, enc_len, enc_input, enc_input_extend_vocab, article_oovs): - enc_lens = enc_len - batch_size = len(enc_lens) - max_enc_seq_len = np.max(np.array(enc_lens.cpu())) - enc_padding_mask = np.zeros((batch_size, max_enc_seq_len), dtype=np.float32) - - # Fill in the numpy arrays - for i, lens in enumerate(enc_lens): - for j in range(lens): - enc_padding_mask[i][j] = 1 - - # enc_batch = Variable(torch.from_numpy(np.array(enc_input)).long()) - enc_batch = enc_input - enc_padding_mask = Variable(torch.from_numpy(enc_padding_mask)).float() - extra_zeros = None - enc_batch_extend_vocab = None - - if config.pointer_gen: - enc_batch_extend_vocab = enc_input_extend_vocab - # max_art_oovs is the max over all the article oov list in the batch - # max_art_oovs = max([len(article_oov) for article_oov in article_oovs]) - max_art_oovs = 0 - for article_oov in article_oovs: - if "N O N E" in article_oov: - continue - else: - max_art_oovs = max(max_art_oovs, len(article_oov)) - if max_art_oovs > 0: - extra_zeros = Variable(torch.zeros((batch_size, max_art_oovs))) - - c_t_1 = Variable(torch.zeros((batch_size, 2 * config.hidden_dim))) - - coverage = None - if config.is_coverage: - coverage = Variable(torch.zeros(enc_batch.size())) - # coverage = Variable(torch.zeros(batch_size, max_enc_seq_len)) - - if use_cuda: - enc_batch = enc_batch.cuda() - enc_padding_mask = enc_padding_mask.cuda() - if enc_batch_extend_vocab is not None: - enc_batch_extend_vocab = enc_batch_extend_vocab.cuda() - if extra_zeros is not None: - extra_zeros = extra_zeros.cuda() - c_t_1 = c_t_1.cuda() - if coverage is not None: - coverage = coverage.cuda() - return enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage - - def get_output_from_batch(self, dec_len, dec_input): - # get_output_from_batch - dec_batch = dec_input - dec_lens = dec_len - max_dec_len = np.max(np.array(dec_lens.cpu())) - - batch_size = len(dec_lens) - - # dec_padding_mask = np.zeros((batch_size, config.max_dec_steps), dtype=np.float32) - dec_padding_mask = np.zeros((batch_size, min(max_dec_len, config.max_dec_steps)), dtype=np.float32) - - # Fill in the numpy arrays - for i, lens in enumerate(dec_lens): - for j in range(lens): - dec_padding_mask[i][j] = 1 - dec_padding_mask = Variable(torch.from_numpy(dec_padding_mask)).float() - - dec_lens_var = dec_lens - - # target_batch = Variable(torch.from_numpy(np.array(target))).long() - - if use_cuda: - dec_batch = dec_batch.cuda() - dec_padding_mask = dec_padding_mask.cuda() - dec_lens_var = dec_lens_var.cuda() - # target_batch = target_batch.cuda() - # target = target_batch - - return dec_batch, max_dec_len, dec_padding_mask, dec_lens_var - - def sort_beams(self, beams): - return sorted(beams, key=lambda h: h.avg_log_prob, reverse=True) - - def forward(self, enc_len, enc_input, dec_input, dec_len, article_oovs, enc_input_extend_vocab): - # print("start forward",enc_input.size()) - enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage = \ - self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, article_oovs) - dec_batch, max_dec_len, dec_padding_mask, dec_lens_var = self.get_output_from_batch(dec_len, dec_input) - - encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) - s_t_1 = self.reduce_state(encoder_hidden) - - # step_losses = [] - list_final_dist = [] - list_coverage = [] - list_attn = [] - pred = None - - for di in range(min(max_dec_len, config.max_dec_steps)): - y_t_1 = dec_batch[:, di] # Teacher forcing - final_dist, s_t_1, c_t_1, attn_dist, p_gen, next_coverage = self.decoder(y_t_1, s_t_1, - encoder_outputs, - encoder_feature, - enc_padding_mask, c_t_1, - extra_zeros, - enc_batch_extend_vocab, - coverage, di) - - _, max_position = torch.max(final_dist, 1) - max_position = max_position.unsqueeze(1) - if pred is None: - pred = max_position - else: - pred = torch.cat((pred, max_position), 1) - - list_final_dist.append(final_dist) - list_attn.append(attn_dist) - if config.is_coverage: - list_coverage.append(coverage) - coverage = next_coverage - - return {"pred": pred, "list_final_dist": list_final_dist, "list_coverage": list_coverage, - "list_attn": list_attn, "max_dec_len": max_dec_len, "dec_padding_mask": dec_padding_mask, - "dec_lens_var": dec_lens_var} - - def unpadding(self, enc_len, enc_input, enc_input_extend_vocab): - return enc_input[:enc_len], enc_input_extend_vocab[:enc_len] - - def decode(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): - enc_input, enc_input_extend_vocab = self.unpadding(enc_len, enc_input, enc_input_extend_vocab) - - # print("before: ", enc_input.size()," ",enc_len.size()," ",(np.array(article_oovs)).shape," ",enc_input_extend_vocab.size()) - enc_input = enc_input.unsqueeze(0).expand(config.beam_size, list(enc_input.size())[0]).contiguous() - enc_len = enc_len.unsqueeze(0).expand(config.beam_size).contiguous() - enc_input_extend_vocab = enc_input_extend_vocab.unsqueeze(0).expand(config.beam_size, - list(enc_input_extend_vocab.size())[ - 0]).contiguous() - # print("after: ", enc_input.size(), " ", enc_len.size(), " ", np.array(article_oovs).shape, " ", enc_input_extend_vocab.size()) - - enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_0, coverage_t_0 = \ - self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, [article_oovs]) - - # print("-----in decoder: sizeof enc_batch and enc_lens: ",enc_batch.size()," ",enc_lens.size()) - # print("------length infomation: ",enc_lens) - encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) - # print("******in decoder: sizeof encoder_outputs and encoder_feature: ", encoder_outputs.size(), " ", encoder_feature.size()) - s_t_0 = self.reduce_state(encoder_hidden) - - dec_h, dec_c = s_t_0 # 1 x 2*hidden_size - dec_h = dec_h.squeeze() - dec_c = dec_c.squeeze() - - # decoder batch preparation, it has beam_size example initially everything is repeated - beams = [Beam(tokens=[self.vocab.to_index(data.START_DECODING)], - log_probs=[0.0], - state=(dec_h[0], dec_c[0]), - context=c_t_0[0], - coverage=(coverage_t_0[0] if config.is_coverage else None)) for _ in range(config.beam_size)] - results = [] - steps = 0 - while steps < config.max_dec_steps and len(results) < config.beam_size: - latest_tokens = [h.latest_token for h in beams] - latest_tokens = [t if t < len(self.vocab) else self.vocab.to_index(data.UNKNOWN_TOKEN) \ - for t in latest_tokens] - y_t_1 = Variable(torch.LongTensor(latest_tokens)) - if use_cuda: - y_t_1 = y_t_1.cuda() - all_state_h = [] - all_state_c = [] - all_context = [] - - for h in beams: - state_h, state_c = h.state - all_state_h.append(state_h) - all_state_c.append(state_c) - all_context.append(h.context) - - s_t_1 = (torch.stack(all_state_h, 0).unsqueeze(0), torch.stack(all_state_c, 0).unsqueeze(0)) - c_t_1 = torch.stack(all_context, 0) - - coverage_t_1 = None - if config.is_coverage: - all_coverage = [] - for h in beams: - all_coverage.append(h.coverage) - coverage_t_1 = torch.stack(all_coverage, 0) - - # print("-"*20) - # print(article_oovs) - # print(extra_zeros) - - final_dist, s_t, c_t, attn_dist, p_gen, coverage_t = self.decoder(y_t_1, s_t_1, - encoder_outputs, encoder_feature, - enc_padding_mask, c_t_1, - extra_zeros, enc_batch_extend_vocab, - coverage_t_1, steps) - # print("final_dist: ", final_dist) - log_probs = torch.log(final_dist) - topk_log_probs, topk_ids = torch.topk(log_probs, config.beam_size * 2) - # print("topk_log_probs: ", topk_log_probs) - # print("topk_ids: ", topk_ids) - - dec_h, dec_c = s_t - dec_h = dec_h.squeeze() - dec_c = dec_c.squeeze() - - all_beams = [] - num_orig_beams = 1 if steps == 0 else len(beams) - for i in range(num_orig_beams): - h = beams[i] - state_i = (dec_h[i], dec_c[i]) - context_i = c_t[i] - coverage_i = (coverage_t[i] if config.is_coverage else None) - - for j in range(config.beam_size * 2): # for each of the top 2*beam_size hyps: - # print("log_probs.size: ",log_probs.size, "topk_ids.size: ", topk_ids.size()) - # print("i,j: ", i, ",", j, "topk_ids: ",topk_ids) - # print(topk_ids[i]) - # print(topk_ids[i,j]) - # print("topk_ids[i,j].item: ", topk_ids[i, j].item()) - new_beam = h.extend(token=topk_ids[i, j].item(), - log_prob=topk_log_probs[i, j].item(), - state=state_i, - context=context_i, - coverage=coverage_i) - all_beams.append(new_beam) - - beams = [] - for h in self.sort_beams(all_beams): - if h.latest_token == self.vocab.to_index(data.STOP_DECODING): - if steps >= config.min_dec_steps: - results.append(h) - else: - beams.append(h) - if len(beams) == config.beam_size or len(results) == config.beam_size: - break - - steps += 1 - - if len(results) == 0: - results = beams - - beams_sorted = self.sort_beams(results) - output_ids = [int(t) for t in beams_sorted[0].tokens[1:]] - - return output_ids - - def predict(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): - # batch should have only one example - # print("start predict",enc_input.size()) - output_ids = [] - batch_size, seq_len = list(enc_input.size()) - - enc_len_tmp = enc_len - enc_input_tmp = enc_input - article_oovs_tmp = article_oovs - enc_input_extend_vocab_tmp = enc_input_extend_vocab - for _num in range(batch_size): - enc_len = enc_len_tmp[_num] - enc_input = enc_input_tmp[_num] - article_oovs = article_oovs_tmp[_num] - enc_input_extend_vocab = enc_input_extend_vocab_tmp[_num] - pred = self.decode(enc_len, enc_input, article_oovs, enc_input_extend_vocab) - output_ids.append(pred) - - return {"prediction": output_ids} diff --git a/PointerGen/model/model.py b/PointerGen/model/model.py deleted file mode 100644 index 5956e08..0000000 --- a/PointerGen/model/model.py +++ /dev/null @@ -1,558 +0,0 @@ -# from __future__ import unicode_literals, print_function, division - -import torch -import torch.nn as nn -import torch.nn.functional as F -from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence -# from data_util.config import Config -from numpy import random -from data_util.logging import logger -import numpy as np -from data_util import data -from torch.autograd import Variable - -# use_cuda = config.use_gpu and torch.cuda.is_available() - -random.seed(123) -torch.manual_seed(123) -if torch.cuda.is_available(): - torch.cuda.manual_seed_all(123) - - -def is_infinite_dist(distss): - is_nan_list = torch.isnan(distss) - if (is_nan_list.max() == 1).item() == 1: - return True - return False - - -def init_lstm_wt(config, lstm): - for names in lstm._all_weights: - for name in names: - if name.startswith('weight_'): - wt = getattr(lstm, name) - wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) - elif name.startswith('bias_'): - # set forget bias to 1 - bias = getattr(lstm, name) - n = bias.size(0) - start, end = n // 4, n // 2 - bias.data.fill_(0.) - bias.data[start:end].fill_(1.) - - -def init_linear_wt(config, linear): - linear.weight.data.normal_(std=config.trunc_norm_init_std) - if linear.bias is not None: - linear.bias.data.normal_(std=config.trunc_norm_init_std) - - -def init_wt_normal(config, wt): - wt.data.normal_(std=config.trunc_norm_init_std) - - -def init_wt_unif(config, wt): - wt.data.uniform_(-config.rand_unif_init_mag, config.rand_unif_init_mag) - - -class Beam(object): - def __init__(self, tokens, log_probs, state, context, coverage): - # 一个beam可以理解为存储着一组到当前位置字的“路线” - self.tokens = tokens - self.log_probs = log_probs - self.state = state - self.context = context - self.coverage = coverage - - def extend(self, token, log_prob, state, context, coverage): - return Beam(tokens=self.tokens + [token], log_probs=self.log_probs + [log_prob], state=state, context=context, - coverage=coverage) - - @property - def latest_token(self): - return self.tokens[-1] - - @property - def avg_log_prob(self): - return sum(self.log_probs) / len(self.tokens) - - -class Encoder(nn.Module): - def __init__(self,config): - super(Encoder, self).__init__() - self.config = config - self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) - init_wt_normal(config, self.embedding.weight) - - self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=True) - init_lstm_wt(config, self.lstm) - - self.W_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2, bias=False) - - # seq_lens should be in descending order - def forward(self, input, seq_lens): - config = self.config - embedded = self.embedding(input) - - _, indices = torch.sort(seq_lens, dim=0, descending=True) - _, desorted_indices = torch.sort(indices, dim=0) - embedded = embedded.index_select(0, indices) - lengths = list(seq_lens[indices]) - - packed = pack_padded_sequence(embedded, lengths, batch_first=True) - output, hidden = self.lstm(packed) - - encoder_outputs, _ = pad_packed_sequence(output, batch_first=True) # h dim = B x t_k x n - - encoder_outputs = encoder_outputs.index_select(0, desorted_indices) - hn, cn = hidden - hn = hn.index_select(1, desorted_indices) - cn = cn.index_select(1, desorted_indices) - hidden = (hn, cn) - encoder_outputs = encoder_outputs.contiguous() - - encoder_feature = encoder_outputs.view(-1, 2 * config.hidden_dim) # B * t_k x 2*hidden_dim - encoder_feature = self.W_h(encoder_feature) - - return encoder_outputs, encoder_feature, hidden - - -class ReduceState(nn.Module): - def __init__(self, config): - super(ReduceState, self).__init__() - self.config = config - self.reduce_h = nn.Linear(config.hidden_dim * 2, config.hidden_dim) - init_linear_wt(config, self.reduce_h) - self.reduce_c = nn.Linear(config.hidden_dim * 2, config.hidden_dim) - init_linear_wt(config, self.reduce_c) - - def forward(self, hidden): - config = self.config - h, c = hidden # h, c dim = 2 x b x hidden_dim - h_in = h.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) - hidden_reduced_h = F.relu(self.reduce_h(h_in)) - c_in = c.transpose(0, 1).contiguous().view(-1, config.hidden_dim * 2) - hidden_reduced_c = F.relu(self.reduce_c(c_in)) - - return (hidden_reduced_h.unsqueeze(0), hidden_reduced_c.unsqueeze(0)) # h, c dim = 1 x b x hidden_dim - - -class Attention(nn.Module): - def __init__(self, config): - super(Attention, self).__init__() - self.config = config - # attention - if config.is_coverage: - self.W_c = nn.Linear(1, config.hidden_dim * 2, bias=False) - self.decode_proj = nn.Linear(config.hidden_dim * 2, config.hidden_dim * 2) - self.v = nn.Linear(config.hidden_dim * 2, 1, bias=False) - - def forward(self, s_t_hat, encoder_outputs, encoder_feature, enc_padding_mask, coverage): - config = self.config - - b, t_k, n = list(encoder_outputs.size()) - dec_fea = self.decode_proj(s_t_hat) # B x 2*hidden_dim - dec_fea_expanded = dec_fea.unsqueeze(1).expand(b, t_k, n).contiguous() # B x t_k x 2*hidden_dim - dec_fea_expanded = dec_fea_expanded.view(-1, n) # B * t_k x 2*hidden_dim - - att_features = encoder_feature + dec_fea_expanded # B * t_k x 2*hidden_dim - if config.is_coverage: - coverage_input = coverage.view(-1, 1) # B * t_k x 1 - coverage_feature = self.W_c(coverage_input) # B * t_k x 2*hidden_dim - att_features = att_features + coverage_feature - - e = torch.tanh(att_features) # B * t_k x 2*hidden_dim - scores = self.v(e) # B * t_k x 1 - scores = scores.view(-1, t_k) # B x t_k - - attn_dist_ = F.softmax(scores, dim=1) * enc_padding_mask # B x t_k - normalization_factor = attn_dist_.sum(1, keepdim=True) - attn_dist = attn_dist_ / normalization_factor - - attn_dist = attn_dist.unsqueeze(1) # B x 1 x t_k - c_t = torch.bmm(attn_dist, encoder_outputs) # B x 1 x n - c_t = c_t.view(-1, config.hidden_dim * 2) # B x 2*hidden_dim - - attn_dist = attn_dist.view(-1, t_k) # B x t_k - - if config.is_coverage: - coverage = coverage.view(-1, t_k) - coverage = coverage + attn_dist - - return c_t, attn_dist, coverage - - -class Decoder(nn.Module): - def __init__(self, config): - super(Decoder, self).__init__() - self.config = config - self.attention_network = Attention(config) - # decoder - self.embedding = nn.Embedding(config.vocab_size, config.emb_dim) - init_wt_normal(config, self.embedding.weight) - - self.x_context = nn.Linear(config.hidden_dim * 2 + config.emb_dim, config.emb_dim) - - self.lstm = nn.LSTM(config.emb_dim, config.hidden_dim, num_layers=1, batch_first=True, bidirectional=False) - init_lstm_wt(config, self.lstm) - - if config.pointer_gen: - self.p_gen_linear = nn.Linear(config.hidden_dim * 4 + config.emb_dim, 1) - - # p_vocab - self.out1 = nn.Linear(config.hidden_dim * 3, config.hidden_dim) - self.out2 = nn.Linear(config.hidden_dim, config.vocab_size) - init_linear_wt(config, self.out2) - - def forward(self, y_t_1, s_t_1, encoder_outputs, encoder_feature, enc_padding_mask, - c_t_1, extra_zeros, enc_batch_extend_vocab, coverage, step): - config = self.config - - if not self.training and step == 0: - h_decoder, c_decoder = s_t_1 - s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), - c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim - c_t, _, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, - enc_padding_mask, coverage) - coverage = coverage_next - - y_t_1_embd = self.embedding(y_t_1) - x = self.x_context(torch.cat((c_t_1, y_t_1_embd), 1)) - lstm_out, s_t = self.lstm(x.unsqueeze(1), s_t_1) - - h_decoder, c_decoder = s_t - s_t_hat = torch.cat((h_decoder.view(-1, config.hidden_dim), - c_decoder.view(-1, config.hidden_dim)), 1) # B x 2*hidden_dim - c_t, attn_dist, coverage_next = self.attention_network(s_t_hat, encoder_outputs, encoder_feature, - enc_padding_mask, coverage) - - if self.training or step > 0: - coverage = coverage_next - - p_gen = None - if config.pointer_gen: - p_gen_input = torch.cat((c_t, s_t_hat, x), 1) # B x (2*2*hidden_dim + emb_dim) - p_gen = self.p_gen_linear(p_gen_input) - p_gen = torch.sigmoid(p_gen) - - output = torch.cat((lstm_out.view(-1, config.hidden_dim), c_t), 1) # B x hidden_dim * 3 - output = self.out1(output) # B x hidden_dim - # output = F.relu(output) - - output = self.out2(output) # B x vocab_size - vocab_dist = F.softmax(output, dim=1) - - if config.pointer_gen: - vocab_dist_ = p_gen * vocab_dist - attn_dist_ = (1 - p_gen) * attn_dist - - if extra_zeros is not None: - vocab_dist_ = torch.cat([vocab_dist_, extra_zeros], 1) - final_dist = vocab_dist_.scatter_add_(1, enc_batch_extend_vocab, attn_dist_) - else: - final_dist = vocab_dist - - if is_infinite_dist(final_dist): - print("catch nan final dist: ", final_dist) - print("embedding weight:", self.embedding.weight) - print("y_t_1_embd: ", y_t_1_embd) - print("y_t_1:", y_t_1) - - return final_dist, s_t, c_t, attn_dist, p_gen, coverage - - -class Model(torch.nn.Module): - def __init__(self, config, vocab=None): - super(Model, self).__init__() - use_cuda = config.use_gpu and torch.cuda.is_available() - self.use_cuda = use_cuda - encoder = Encoder(config) - decoder = Decoder(config) - reduce_state = ReduceState(config) - self.config = config - self.vocab = vocab - - # shared the embedding between encoder and decoder - decoder.embedding.weight = encoder.embedding.weight - - if use_cuda: - encoder = encoder.cuda() - decoder = decoder.cuda() - reduce_state = reduce_state.cuda() - - self.encoder = encoder - self.decoder = decoder - self.reduce_state = reduce_state - - def get_input_from_batch(self, enc_len, enc_input, enc_input_extend_vocab, article_oovs): - config = self.config - use_cuda = self.use_cuda - enc_lens = enc_len - batch_size = len(enc_lens) - max_enc_seq_len = np.max(np.array(enc_lens.cpu())) - enc_padding_mask = np.zeros((batch_size, max_enc_seq_len), dtype=np.float32) - - # Fill in the numpy arrays - for i, lens in enumerate(enc_lens): - for j in range(lens): - enc_padding_mask[i][j] = 1 - - # enc_batch = Variable(torch.from_numpy(np.array(enc_input)).long()) - enc_batch = enc_input - enc_padding_mask = Variable(torch.from_numpy(enc_padding_mask)).float() - extra_zeros = None - enc_batch_extend_vocab = None - - if config.pointer_gen: - enc_batch_extend_vocab = enc_input_extend_vocab - # max_art_oovs is the max over all the article oov list in the batch - # max_art_oovs = max([len(article_oov) for article_oov in article_oovs]) - max_art_oovs = 0 - for article_oov in article_oovs: - if "N O N E" in article_oov: - continue - else: - max_art_oovs = max(max_art_oovs, len(article_oov)) - if max_art_oovs > 0: - extra_zeros = Variable(torch.zeros((batch_size, max_art_oovs))) - - c_t_1 = Variable(torch.zeros((batch_size, 2 * config.hidden_dim))) - - coverage = None - if config.is_coverage: - coverage = Variable(torch.zeros(enc_batch.size())) - # coverage = Variable(torch.zeros(batch_size, max_enc_seq_len)) - - if use_cuda: - enc_batch = enc_batch.cuda() - enc_padding_mask = enc_padding_mask.cuda() - if enc_batch_extend_vocab is not None: - enc_batch_extend_vocab = enc_batch_extend_vocab.cuda() - if extra_zeros is not None: - extra_zeros = extra_zeros.cuda() - c_t_1 = c_t_1.cuda() - if coverage is not None: - coverage = coverage.cuda() - return enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage - - def get_output_from_batch(self, dec_len, dec_input): - config = self.config - use_cuda = self.use_cuda - # get_output_from_batch - dec_batch = dec_input - dec_lens = dec_len - max_dec_len = np.max(np.array(dec_lens.cpu())) - - batch_size = len(dec_lens) - - # dec_padding_mask = np.zeros((batch_size, config.max_dec_steps), dtype=np.float32) - dec_padding_mask = np.zeros((batch_size, min(max_dec_len, config.max_dec_steps)), dtype=np.float32) - - # Fill in the numpy arrays - for i, lens in enumerate(dec_lens): - for j in range(lens): - dec_padding_mask[i][j] = 1 - dec_padding_mask = Variable(torch.from_numpy(dec_padding_mask)).float() - - dec_lens_var = dec_lens - - # target_batch = Variable(torch.from_numpy(np.array(target))).long() - - if use_cuda: - dec_batch = dec_batch.cuda() - dec_padding_mask = dec_padding_mask.cuda() - dec_lens_var = dec_lens_var.cuda() - # target_batch = target_batch.cuda() - # target = target_batch - - return dec_batch, max_dec_len, dec_padding_mask, dec_lens_var - - def sort_beams(self, beams): - return sorted(beams, key=lambda h: h.avg_log_prob, reverse=True) - - def forward(self, enc_len, enc_input, dec_input, dec_len, article_oovs, enc_input_extend_vocab): - config = self.config - # print("start forward",enc_input.size()) - enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_1, coverage = \ - self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, article_oovs) - dec_batch, max_dec_len, dec_padding_mask, dec_lens_var = self.get_output_from_batch(dec_len, dec_input) - - encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) - s_t_1 = self.reduce_state(encoder_hidden) - - # step_losses = [] - list_final_dist = [] - list_coverage = [] - list_attn = [] - pred = None - - for di in range(min(max_dec_len, config.max_dec_steps)): - y_t_1 = dec_batch[:, di] # Teacher forcing - final_dist, s_t_1, c_t_1, attn_dist, p_gen, next_coverage = self.decoder(y_t_1, s_t_1, - encoder_outputs, - encoder_feature, - enc_padding_mask, c_t_1, - extra_zeros, - enc_batch_extend_vocab, - coverage, di) - - _, max_position = torch.max(final_dist, 1) - max_position = max_position.unsqueeze(1) - if pred is None: - pred = max_position - else: - pred = torch.cat((pred, max_position), 1) - - list_final_dist.append(final_dist) - list_attn.append(attn_dist) - if config.is_coverage: - list_coverage.append(coverage) - coverage = next_coverage - - return {"list_final_dist": list_final_dist, "list_coverage": list_coverage, - "list_attn": list_attn, "max_dec_len": max_dec_len, "dec_padding_mask": dec_padding_mask, - "dec_lens_var": dec_lens_var} - - def unpadding(self, enc_len, enc_input, enc_input_extend_vocab): - return enc_input[:enc_len], enc_input_extend_vocab[:enc_len] - - def decode(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): - config = self.config - use_cuda = self.use_cuda - enc_input, enc_input_extend_vocab = self.unpadding(enc_len, enc_input, enc_input_extend_vocab) - - # print("before: ", enc_input.size()," ",enc_len.size()," ",(np.array(article_oovs)).shape," ",enc_input_extend_vocab.size()) - enc_input = enc_input.unsqueeze(0).expand(config.beam_size, list(enc_input.size())[0]).contiguous() - enc_len = enc_len.unsqueeze(0).expand(config.beam_size).contiguous() - enc_input_extend_vocab = enc_input_extend_vocab.unsqueeze(0).expand(config.beam_size, - list(enc_input_extend_vocab.size())[ - 0]).contiguous() - # print("after: ", enc_input.size(), " ", enc_len.size(), " ", np.array(article_oovs).shape, " ", enc_input_extend_vocab.size()) - - enc_batch, enc_lens, enc_padding_mask, extra_zeros, enc_batch_extend_vocab, c_t_0, coverage_t_0 = \ - self.get_input_from_batch(enc_len, enc_input, enc_input_extend_vocab, [article_oovs]) - - # print("-----in decoder: sizeof enc_batch and enc_lens: ",enc_batch.size()," ",enc_lens.size()) - # print("------length infomation: ",enc_lens) - encoder_outputs, encoder_feature, encoder_hidden = self.encoder(enc_batch, enc_lens) - # print("******in decoder: sizeof encoder_outputs and encoder_feature: ", encoder_outputs.size(), " ", encoder_feature.size()) - s_t_0 = self.reduce_state(encoder_hidden) - - dec_h, dec_c = s_t_0 # 1 x 2*hidden_size - dec_h = dec_h.squeeze() - dec_c = dec_c.squeeze() - - # decoder batch preparation, it has beam_size example initially everything is repeated - beams = [Beam(tokens=[self.vocab.to_index(data.START_DECODING)], - log_probs=[0.0], - state=(dec_h[0], dec_c[0]), - context=c_t_0[0], - coverage=(coverage_t_0[0] if config.is_coverage else None)) for _ in range(config.beam_size)] - results = [] - steps = 0 - while steps < config.max_dec_steps and len(results) < config.beam_size: - latest_tokens = [h.latest_token for h in beams] - latest_tokens = [t if t < len(self.vocab) else self.vocab.to_index(data.UNKNOWN_TOKEN) \ - for t in latest_tokens] - y_t_1 = Variable(torch.LongTensor(latest_tokens)) - if use_cuda: - y_t_1 = y_t_1.cuda() - all_state_h = [] - all_state_c = [] - all_context = [] - - for h in beams: - state_h, state_c = h.state - all_state_h.append(state_h) - all_state_c.append(state_c) - all_context.append(h.context) - - s_t_1 = (torch.stack(all_state_h, 0).unsqueeze(0), torch.stack(all_state_c, 0).unsqueeze(0)) - c_t_1 = torch.stack(all_context, 0) - - coverage_t_1 = None - if config.is_coverage: - all_coverage = [] - for h in beams: - all_coverage.append(h.coverage) - coverage_t_1 = torch.stack(all_coverage, 0) - - # print("-"*20) - # print(article_oovs) - # print(extra_zeros) - - final_dist, s_t, c_t, attn_dist, p_gen, coverage_t = self.decoder(y_t_1, s_t_1, - encoder_outputs, encoder_feature, - enc_padding_mask, c_t_1, - extra_zeros, enc_batch_extend_vocab, - coverage_t_1, steps) - # print("final_dist: ", final_dist) - log_probs = torch.log(final_dist) - topk_log_probs, topk_ids = torch.topk(log_probs, config.beam_size * 2) - # print("topk_log_probs: ", topk_log_probs) - # print("topk_ids: ", topk_ids) - - dec_h, dec_c = s_t - dec_h = dec_h.squeeze() - dec_c = dec_c.squeeze() - - all_beams = [] - num_orig_beams = 1 if steps == 0 else len(beams) - for i in range(num_orig_beams): - h = beams[i] - state_i = (dec_h[i], dec_c[i]) - context_i = c_t[i] - coverage_i = (coverage_t[i] if config.is_coverage else None) - - for j in range(config.beam_size * 2): # for each of the top 2*beam_size hyps: - # print("log_probs.size: ",log_probs.size, "topk_ids.size: ", topk_ids.size()) - # print("i,j: ", i, ",", j, "topk_ids: ",topk_ids) - # print(topk_ids[i]) - # print(topk_ids[i,j]) - # print("topk_ids[i,j].item: ", topk_ids[i, j].item()) - new_beam = h.extend(token=topk_ids[i, j].item(), - log_prob=topk_log_probs[i, j].item(), - state=state_i, - context=context_i, - coverage=coverage_i) - all_beams.append(new_beam) - - beams = [] - for h in self.sort_beams(all_beams): - if h.latest_token == self.vocab.to_index(data.STOP_DECODING): - if steps >= config.min_dec_steps: - results.append(h) - else: - beams.append(h) - if len(beams) == config.beam_size or len(results) == config.beam_size: - break - - steps += 1 - - if len(results) == 0: - results = beams - - beams_sorted = self.sort_beams(results) - output_ids = [int(t) for t in beams_sorted[0].tokens[1:]] - - return output_ids - - def predict(self, enc_len, enc_input, article_oovs, enc_input_extend_vocab): - # batch should have only one example - # print("start predict",enc_input.size()) - output_ids = [] - batch_size, seq_len = list(enc_input.size()) - - enc_len_tmp = enc_len - enc_input_tmp = enc_input - article_oovs_tmp = article_oovs - enc_input_extend_vocab_tmp = enc_input_extend_vocab - for _num in range(batch_size): - enc_len = enc_len_tmp[_num] - enc_input = enc_input_tmp[_num] - article_oovs = article_oovs_tmp[_num] - enc_input_extend_vocab = enc_input_extend_vocab_tmp[_num] - pred = self.decode(enc_len, enc_input, article_oovs, enc_input_extend_vocab) - output_ids.append(pred) - - return {"prediction": output_ids} diff --git a/PointerGen/model/mq b/PointerGen/model/mq deleted file mode 100644 index e69de29..0000000 diff --git a/PointerGen/train.py b/PointerGen/train.py deleted file mode 100644 index 1198aba..0000000 --- a/PointerGen/train.py +++ /dev/null @@ -1,170 +0,0 @@ -from data_util.config import Config -from data_util.data import prepare_dataInfo, PAD_TOKEN -from data_util.logging import logger -from model.loss import MyLoss -from model.model import Model -from fastNLP import BucketSampler -from fastNLP import Trainer -from fastNLP import Tester -from torch.optim import Adagrad -from model.metric import PyRougeMetric, FastRougeMetric -import os -import time -from data_util.utils import print_config, write_eval_results -from training_ptr_gen.callback import TrainCallback -import torch -import sys -import tensorflow as tf -import argparse - - -def initial_dir(mode, config, model_file_path=None): - if not os.path.exists(config.log_root): - os.mkdir(config.log_root) - - if mode == 'train': - _train_name = "" - if config.pointer_gen: - _train_name = _train_name + "_pointer_gen" - if config.is_coverage: - _train_name = _train_name + "_coverage" - - train_dir = os.path.join(config.log_root, 'train{}'.format(_train_name)) - if not os.path.exists(train_dir): - os.mkdir(train_dir) - - model_dir = os.path.join(train_dir, 'model') - if not os.path.exists(model_dir): - os.mkdir(model_dir) - - return train_dir, model_dir - else: - if model_file_path is None: - logger.error("error!, no model to load") - raise Exception("empty model file path!", model_file_path) - parent_path = os.path.dirname(model_file_path) - train_path = os.path.dirname(parent_path) - model_name = os.path.basename(model_file_path) - decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) - - if not os.path.exists(decode_path): - os.mkdir(decode_path) - - return decode_path - - -def set_up_data(mode, config): - datainfo = prepare_dataInfo(mode=mode, train_data_path=config.train_data_path, dev_data_path=config.eval_data_path, - vocab_size=config.vocab_size, config=config) - logger.info('-' * 10 + "set up data done!" + '-' * 10) - return datainfo - - -def run_train(config): - train_dir, model_dir = initial_dir('train', config) - config.train_path = train_dir - config.model_path = model_dir - print_config(config, train_dir) - datainfo = set_up_data('train', config) - train_sampler = BucketSampler(batch_size=config.batch_size, seq_len_field_name='enc_len') - criterion = MyLoss(config=config, padding_idx=datainfo.vocabs["train"].to_index(PAD_TOKEN)) - - model = Model(vocab=datainfo.vocabs["train"], config=config) - params = list(model.encoder.parameters()) + list(model.decoder.parameters()) + \ - list(model.reduce_state.parameters()) - initial_lr = config.lr_coverage if config.is_coverage else config.lr - optimizer = Adagrad(params, lr=initial_lr, initial_accumulator_value=config.adagrad_init_acc) - - train_loader = datainfo.datasets["train"] - valid_loader = datainfo.datasets["dev"] - summary_writer = tf.compat.v1.summary.FileWriter(train_dir) - trainer = Trainer(model=model, train_data=train_loader, optimizer=optimizer, loss=criterion, - batch_size=config.batch_size, check_code_level=-1, - n_epochs=config.n_epochs, print_every=100, dev_data=valid_loader, - metrics=FastRougeMetric(pred='prediction', art_oovs='article_oovs', - abstract_sentences='abstract_sentences', config=config, - vocab=datainfo.vocabs["train"]), - metric_key="rouge-l-f", validate_every=-1, save_path=model_dir, - callbacks=[TrainCallback(config, summary_writer, patience=10)], use_tqdm=False, - device=config.visible_gpu) - - logger.info("-" * 5 + "start training" + "-" * 5) - - traininfo = trainer.train(load_best_model=True) - logger.info(' | end of Train | time: {:5.2f}s | '.format(traininfo["seconds"])) - logger.info('[INFO] best eval model in epoch %d and iter %d', traininfo["best_epoch"], traininfo["best_step"]) - logger.info(traininfo["best_eval"]) - - bestmodel_save_path = os.path.join(config.model_path, - 'bestmodel.pkl') # this is where checkpoints of best models are saved - state = { - 'encoder_state_dict': model.encoder.state_dict(), - 'decoder_state_dict': model.decoder.state_dict(), - 'reduce_state_dict': model.reduce_state.state_dict() - } - torch.save(state, bestmodel_save_path) - # 不是作为形参传入到Trainer里面的么,怎么里面的model变化会影响到外面的? - logger.info('[INFO] Saving eval best model to %s', bestmodel_save_path) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Train script") - parser.add_argument("-m", dest="model_file_path", required=False, default=None, - help="Model file for retraining (default: None).") - parser.add_argument('-visible_gpu', default=-1, type=int, required=True) - parser.add_argument('-dataset_path', default="/remote-home/yrchen/Datasets") - parser.add_argument('-train_data_path', - default="CNNDM/finished_files_new1/CNNDM.train.json", required=True) - parser.add_argument('-eval_data_path', - default="CNNDM/finished_files_new1/CNNDM.val.json", required=True) - # parser.add_argument('-decode_data_path', - # default="CNNDM/finished_files_new1/CNNDM.test.json", required=True) - # parser.add_argument('-vocab_path', default='CNNDM/finished_files_new1/vocab.pkl') - parser.add_argument('-root', - default='/remote-home/yrchen/tasks/fastnlp-relevant/summarization/my-pnt-sum/log') - parser.add_argument('-log_root', default='CNNDM', required=True) - - parser.add_argument('-hidden_dim', default=256, type=int) - parser.add_argument('-emb_dim', default=128, type=int) - # parser.add_argument('-batch_size', default=8, type=int) - parser.add_argument('-batch_size', default=16, type=int) - parser.add_argument('-max_enc_steps', default=400, type=int) - parser.add_argument('-max_dec_steps', default=100, type=int) - parser.add_argument('-beam_size', default=4, type=int) - parser.add_argument('-min_dec_steps', default=35, type=int) - parser.add_argument('-vocab_size', default=50000, type=int) - - parser.add_argument('-lr', default=0.15, type=float) - parser.add_argument('-adagrad_init_acc', default=0.1, type=float) - parser.add_argument('-rand_unif_init_mag', default=0.02, type=float) - parser.add_argument('-trunc_norm_init_std', default=1e-4, type=float) - parser.add_argument('-max_grad_norm', default=2.0, type=float) - - parser.add_argument('-is_pointer_gen', dest='pointer_gen', nargs='?', const=True, default=False, - type=bool) - parser.add_argument('-is_coverage', nargs='?', const=True, default=False, type=bool) - parser.add_argument('-cov_loss_wt', default=1.0, type=float) - - parser.add_argument('-eps', default=1e-12, type=float) - # parser.add_argument('-max_iterations', default=500000, required=True, type=int) - parser.add_argument("-n_epochs", default=33, type=int, required=True) - - parser.add_argument('-lr_coverage', default=0.15, type=float) - args = parser.parse_args() - - args.train_data_path = os.path.join(args.dataset_path, args.train_data_path) - args.eval_data_path = os.path.join(args.dataset_path, args.eval_data_path) - # args.decode_data_path = os.path.join(args.dataset_path, args.decode_data_path) - # args.vocab_path = os.path.join(args.dataset_path, args.vocab_path) - - args.log_root = os.path.join(args.root, args.log_root) - - if args.visible_gpu != -1: - args.use_gpu = True - torch.cuda.set_device(args.visible_gpu) - print("using gpu: ", args.visible_gpu) - else: - args.use_gpu = False - - logger.info("------start mode train------") - run_train(args) diff --git a/PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc b/PointerGen/training_ptr_gen/__pycache__/callback.cpython-37.pyc deleted file mode 100644 index 46638c501d4ac03f6c1acd9ea6ee6568dd9af980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4375 zcmcIo&668P6`!6DX*Bv+?WdjKkjcjaO0X7^PzhTpii&Y4J7%F`6DS!o%&JGbqaDr2 zJ*~A@$W>I=^=PHtb!<4mX#4e>p4Z>M{=L`x zLA~x7c-H>#@x3oE8^%BB<@B+k{17SU5ZvG_F*-%gI!wQt9aHC4$JV*iagduyX;AKz z2X4n@WN#&vf!Fc0ZYR}2ty5#hj}7kd(qn^{qVloTsdIMQXqBI!Cu65&D)(BLB)ehv zKsBz1B00J(v*C3iGSOnHlw^B*5ozn)FzE(jl%{dI7lemJXcF|~zlMkm z8aM{M{+ZEZ+~W4*O2;Y&f+>`_``Ew~D%?X};#FQlUgmY)K<@G--b7yE%X|g7$5;6p z^6F=XZFFiF{)VdG5n-I3j{S*+KJRoL>K_l~CK8qAA3{ju*qE{tgBcSxF#>a9L0X)2 zTT5qRLNCek#6D)yJ+Q?4vck<{_9>g#_~LN`-C8?>p|$b5H&Xwj=;(ti6#PaiBOyjZ z`ECFHD3$?M(+|boC>o^FAB=M8??!&;?`B!jZdH|&kA{&@ZV<#NtOHf*W@#_pQ|>U7 zag=r=Wj_dGshSrTTQ&00U=WI<;DLzIr?TbI5Z2VP@;(WZQKa`xxu@f3Im*tXq$db@ zqCuicVg&+wS_y(~66Sdj{MGo^Z?;4<$YgYNKO00_N20qQrCT!05Av;En9DR7UKLRi z9fqmgD#j6yG2krS8XR36rt&HZw?@JLk9>nlh(b#E|_l}>+V zjk#>Rac)Q3rwi1j6{m-C+SF@EIZZ|yQ{%+I<^XBf97briWju&fGa6>y{UDd2kO7sn zm{>&(u|5|Y&{QK!gTiz-+KbbxD9fn}gN?78AI*8g`Irb`E|MP8AE8W)K927Oj^=?W zF5`_&O$|FLw`S$PCo3eYZ%-YX0kqOwE6+4{mRGp_=h7o4y?%9CgKfRv;10DQmt=F= zJTZ=0&)hIh%txkNo~}@96Z6C*62PjIcAgNaXxzqMV!W-AvNe2G0Je-rf|f}}0gt;< zt?=lnvSktRQ8zkkR>_7~)p!gL*197hqEu==7*_{qF$p#~{#vU*pNxhYc*^M|qkLaE z+CY_OeJk%w=jB=Fs&=+V@iGm+4x!8}S2m8xzOwsSoN8Drujo=2TX8DIB{Fqn1_)yS z;bGLW^ycH}(L~i!QGvb$RO=!rs@Q89cMzrgJ7_BhTN?&zFwbn5HgHQn7jHFo*&4s_ z6i!a-b~Tbvm57lTNrU7IC=w9CHc>JstOr;eGiFF@YEM|-nU+qB6E-cM82Rs{I|U1! z&{ucrO&Dnp-$Ok>;l%inaqo>^VcQ>B6RTerH?_^e+UhsZ+7h+KjQcl#VaR5|XmXiY zuuo7~r7;{6!>w=&aIwd4dH(F#9)=;|#$X?VZ+|a)tt%s2ts(Aihv$I#h0) z7v{?5p$wJP9gdWfjs_qWT3=Kkp9N^Ay-d7DCCxM(L>ya;NkrhwT-8McY7|i(?1_*o zTT2VXr7G7Sb|YXqO9kzehMUH1%Pz2E(_EBIO=5`D=Nv=4M^n`B`6Uzy==9AgTv*>O-~z4Ocj?TZ`&J<+ zJ>#2q{@W>oRt1qDmONF?NXAL7mbyti)C(4*nHU6mamDLoIE(c`_;6t=z5yfg zO^9dE@6y>N!)f~jrg;g%U{~-Pzx3=Sg7vutDx;EKpjV;5F)$9|#ndfnPi?&j&Sg*} zodi8qb7%Y}U_SBDke~H@4LAR{+i&wnC?uD$jkoW$-|9WeQP3)Bl!5 zylA!PMzV{Ps^(9>Pm<+PUuv)TB?r>0lu+rxuo{QBJ+J0Je^o_{+$ z1k3r_2rQWmeeH>SnfaUfctc0ux}3<+M<|s?y#0iZzxLj(%L@#On^d|0;4ONsk#$wp&VegFC!F$v8eC@7|+3)$+ z!qMKo^s$<|bgS^;1dD5hpQZkTOdLdF;VFH6i8ze&Otjl=kkkJUmv;*6T~c10$0;Hx zx}hxN@}q}2zx))?{66jW{}6mcxB9lCto#V>H+mS$Q;%GU<}UlWNSm8IMq{}TL3a=D zY$SJzGSg!<)BGx&%^PW%g3xuRRi`T)g#)<4c|m}aJW5Ef1;PDMm=s_1okzTY3gWvY z$U})6Bt9bX6A~YjAh)jSv-?;#N|GR0oEmr*iXsGESp>O9A4%V$T-K<$mb>mQyN+u^ zdsTmLHHwq{bE-h$uy~KeJ0$32ch>1jw{z=f?QSNb_UR=}kQ>kkUM*9Q6;J@srhfr| tkBTU3X;H4DgCbg@F)fB$X!?HTzF(}%4`}>(6T(I0jGyVUCgSIs^>5#aPg4K@ diff --git a/PointerGen/training_ptr_gen/callback.py b/PointerGen/training_ptr_gen/callback.py deleted file mode 100644 index 3317ecc..0000000 --- a/PointerGen/training_ptr_gen/callback.py +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# __author__="Danqing Wang" - -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== - -import os -import sys -import time -import numpy as np - -import torch -from fastNLP.core.callback import Callback, EarlyStopError - -from data_util.logging import logger -from data_util.utils import calc_running_avg_loss - - -class TrainCallback(Callback): - def __init__(self, config, summary_writer, patience=3, quit_all=True): - super().__init__() - self.config = config - self.patience = patience - self.wait = 0 - self.running_avg_loss = 0 - self.summary_writer = summary_writer - - if type(quit_all) != bool: - raise ValueError("In KeyBoardInterrupt, quit_all arguemnt must be a bool.") - self.quit_all = quit_all - - def on_epoch_begin(self): - self.epoch_start_time = time.time() - - def on_step_end(self): - if self.step % 100 == 0: - self.summary_writer.flush() - - if self.step % 1000 == 0: - state = { - 'iter': self.step, - 'encoder_state_dict': self.model.encoder.state_dict(), - 'decoder_state_dict': self.model.decoder.state_dict(), - 'reduce_state_dict': self.model.reduce_state.state_dict(), - 'optimizer': self.optimizer.state_dict(), - 'current_loss': self.running_avg_loss - } - # model_save_path = os.path.join(self.config.model_path, - # 'model_%d_%d' % (self.step, int(time.time()))) - # model_save_path = os.path.join(self.config.model_path, - # 'model_%d_%d_loss_%f' % (self.step, int(time.time()), self.running_avg_loss)) - model_save_path = os.path.join(self.config.model_path, - 'model_%d_loss_%f' % (self.step, self.running_avg_loss)) - #torch.save(state, model_save_path) - #self.model.cpu() - torch.save(self.model, model_save_path) - #if self.config.use_gpu: - # self.model.cuda() - - def on_backward_begin(self, loss): - """ - :param loss: [] - :return: - """ - print("|epoch: %d step: %d loss: %.4f|" % (self.epoch, self.step, loss.item())) - if not np.isfinite(loss.item()): - logger.error("train Loss is not finite. Stopping.") - logger.info(loss.item()) - for name, param in self.model.named_parameters(): - if param.requires_grad: - logger.info(name) - logger.info(param.grad.data.sum()) - raise Exception("train Loss is not finite. Stopping.") - - self.running_avg_loss = calc_running_avg_loss(loss.item(), self.running_avg_loss, self.summary_writer, self.step) - - def on_backward_end(self): - torch.nn.utils.clip_grad_norm_(self.model.encoder.parameters(), self.config.max_grad_norm) - torch.nn.utils.clip_grad_norm_(self.model.decoder.parameters(), self.config.max_grad_norm) - torch.nn.utils.clip_grad_norm_(self.model.reduce_state.parameters(), self.config.max_grad_norm) - - def on_epoch_end(self): - logger.info( - ' | end of epoch {:3d} | time: {:5.2f}s | '.format(self.epoch, (time.time() - self.epoch_start_time))) - - def on_valid_begin(self): - self.valid_start_time = time.time() - - def on_valid_end(self, eval_result, metric_key, optimizer, is_better_eval): - logger.info( - ' | end of valid {:3d} | time: {:5.2f}s | '.format(self.epoch, (time.time() - self.valid_start_time))) - - # early stop - if not is_better_eval: - if self.wait == self.patience: - - state = { - 'iter': self.step, - 'encoder_state_dict': self.model.encoder.state_dict(), - 'decoder_state_dict': self.model.decoder.state_dict(), - 'reduce_state_dict': self.model.reduce_state.state_dict(), - 'optimizer': self.optimizer.state_dict(), - 'current_loss': self.running_avg_loss - } - - model_save_path = os.path.join(self.config.model_path, - 'earlystop_step_%d.pkl' % self.step) - - # torch.save(state, model_save_path) - - #self.model.cpu() - torch.save(self.model, model_save_path) - #if self.config.use_gpu: - # self.model.cuda() - - logger.info('[INFO] Saving early stop model to %s', model_save_path) - raise EarlyStopError("Early stopping raised.") - else: - self.wait += 1 - else: - self.wait = 0 - - def on_exception(self, exception): - if isinstance(exception, KeyboardInterrupt): - logger.error("[Error] Caught keyboard interrupt on worker. Stopping supervisor...") - state = { - 'iter': self.step, - 'encoder_state_dict': self.model.encoder.state_dict(), - 'decoder_state_dict': self.model.decoder.state_dict(), - 'reduce_state_dict': self.model.reduce_state.state_dict(), - 'optimizer': self.optimizer.state_dict(), - 'current_loss': self.running_avg_loss - } - - model_save_path = os.path.join(self.config.model_path, - 'earlystop_step_%d.pkl' % self.step) - - # torch.save(state, model_save_path) - - #self.model.cpu() - torch.save(self.model, model_save_path) - #if self.config.use_gpu: - # self.model.cuda() - - logger.info('[INFO] Saving early stop model to %s', model_save_path) - - if self.quit_all is True: - sys.exit(0) # 直接退出程序 - else: - pass - else: - raise exception # 抛出陌生Error diff --git a/PointerGen/training_ptr_gen/main.py b/PointerGen/training_ptr_gen/main.py deleted file mode 100644 index 9b35eca..0000000 --- a/PointerGen/training_ptr_gen/main.py +++ /dev/null @@ -1,126 +0,0 @@ -from data_util.config import Config -from data_util.data import prepare_dataInfo, PAD_TOKEN -from data_util.logging import logger -from model.loss import MyLoss -from model.model import Model -from fastNLP import BucketSampler -from fastNLP import Trainer -from fastNLP import Tester -from torch.optim import Adagrad -from model.metric import PyRougeMetric, FastRougeMetric -import os -import time -from data_util.utils import print_config, write_eval_results -from training_ptr_gen.callback import TrainCallback -import torch -import sys -import tensorflow as tf - -config = Config() - - -def initial_dir(mode, model_file_path=None): - if mode == 'train': - train_dir = os.path.join(config.log_root, 'train_%d' % (int(time.time()))) - if not os.path.exists(train_dir): - os.mkdir(train_dir) - - model_dir = os.path.join(train_dir, 'model') - if not os.path.exists(model_dir): - os.mkdir(model_dir) - return train_dir, model_dir - - else: - if model_file_path is None: - logger.error("error!, no model to load") - raise Exception("empty model file path!", model_file_path) - parent_path = os.path.dirname(model_file_path) - train_path = os.path.dirname(parent_path) - model_name = os.path.basename(model_file_path) - decode_path = os.path.join(train_path, 'decode_%s' % (model_name)) - - if not os.path.exists(decode_path): - os.mkdir(decode_path) - - return decode_path - - -def set_up_data(mode): - datainfo = prepare_dataInfo(mode, config.train_data_path, config.eval_data_path, config.decode_data_path, - config.vocab_path, config.vocab_size, config) - logger.info('-' * 10 + "set up data done!" + '-' * 10) - return datainfo - - -def run_train(): - train_dir, model_dir = initial_dir('train') - config.train_path = train_dir - config.model_path = model_dir - print_config(config, train_dir) - datainfo = set_up_data('train') - train_sampler = BucketSampler(batch_size=config.batch_size, seq_len_field_name='enc_len') - criterion = MyLoss(config=config, padding_idx=datainfo.vocabs["train"].to_index(PAD_TOKEN)) - - model = Model(vocab=datainfo.vocabs["train"]) - params = list(model.encoder.parameters()) + list(model.decoder.parameters()) + \ - list(model.reduce_state.parameters()) - initial_lr = config.lr_coverage if config.is_coverage else config.lr - optimizer = Adagrad(params, lr=initial_lr, initial_accumulator_value=config.adagrad_init_acc) - - train_loader = datainfo.datasets["train"] - valid_loader = datainfo.datasets["dev"] - summary_writer = tf.compat.v1.summary.FileWriter(train_dir) - trainer = Trainer(model=model, train_data=train_loader, optimizer=optimizer, loss=criterion, - batch_size=config.batch_size, check_code_level=-1, - n_epochs=config.n_epochs, print_every=100, dev_data=valid_loader, - metrics=FastRougeMetric(pred='prediction', art_oovs='article_oovs', - abstract_sentences='abstract_sentences', config=config, - vocab=datainfo.vocabs["train"]), - metric_key="rouge-l-f", validate_every=-1, save_path=model_dir, - callbacks=[TrainCallback(config, summary_writer, patience=5)], use_tqdm=False) - - logger.info("-" * 5 + "start training" + "-" * 5) - - traininfo = trainer.train(load_best_model=True) - logger.info(' | end of Train | time: {:5.2f}s | '.format(traininfo["seconds"])) - logger.info('[INFO] best eval model in epoch %d and iter %d', traininfo["best_epoch"], traininfo["best_step"]) - logger.info(traininfo["best_eval"]) - - bestmodel_save_path = os.path.join(config.model_path, - 'bestmodel.pkl') # this is where checkpoints of best models are saved - state = { - 'encoder_state_dict': model.encoder.state_dict(), - 'decoder_state_dict': model.decoder.state_dict(), - 'reduce_state_dict': model.reduce_state.state_dict() - } - torch.save(state, bestmodel_save_path) - # 不是作为形参传入到Trainer里面的么,怎么里面的model变化会影响到外面的? - logger.info('[INFO] Saving eval best model to %s', bestmodel_save_path) - - -def run_test(model_file_path): - decode_path = initial_dir('test', model_file_path) - datainfo = set_up_data('test') - model = Model(vocab=datainfo.vocabs["train"]) - tester = Tester(datainfo.datasets['test'], model=model, metrics=PyRougeMetric(pred='prediction', - art_oovs='article_oovs', - abstract_sentences='abstract_sentences', - config=config, - vocab=datainfo.vocabs["train"]), batch_size=1) - eval_results = tester.test() - write_eval_results(decode_path, eval_results) - - -if __name__ == '__main__': - torch.cuda.set_device(4) - mode = sys.argv[1] - if mode == 'train': - logger.info("------start mode train------") - run_train() - elif mode == 'test': - logger.info("------start mode test-------") - model_filename = sys.argv[2] - run_test(model_filename) - else: - logger.error("error: none of the mode is in train or test!") - raise Exception("wrong mode! neither train nor test!", mode) -- Gitee